001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2021, Connect2id Ltd and contributors. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use 007 * this file except in compliance with the License. You may obtain a copy of the 008 * License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed 013 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 014 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 015 * specific language governing permissions and limitations under the License. 016 */ 017 018package com.nimbusds.openid.connect.sdk.assurance.evidences; 019 020 021import net.jcip.annotations.Immutable; 022 023import com.nimbusds.oauth2.sdk.id.Identifier; 024 025 026/** 027 * The type of method used to verify that a person is the owner of a set of 028 * claims. 029 * 030 * <p>Related specifications: 031 * 032 * <ul> 033 * <li>OpenID Connect for Identity Assurance 1.0, section 5.1.1. 034 * <li>https://bitbucket.org/openid/ekyc-ida/wiki/identifiers 035 * </ul> 036 */ 037@Immutable 038public final class VerificationMethodType extends Identifier { 039 040 041 private static final long serialVersionUID = 93318875234167356L; 042 043 044 /** 045 * Verifying the user is the owner of the claims by use of an 046 * electronic authentication process that is linked to the owner of the 047 * claims. 048 */ 049 public static final VerificationMethodType AUTH = new VerificationMethodType("auth"); 050 051 052 /** 053 * Verifying the user is the owner of the claims by use of an 054 * electronic authentication token such as hardware token or smartcard 055 * that is linked and issued to the owner of the claims. 056 */ 057 public static final VerificationMethodType TOKEN= new VerificationMethodType("token"); 058 059 060 /** 061 * Verifying the user is the owner of the claims by knowledge based 062 * challenges / questions that only the owner of the claims should know 063 * how to answer. 064 */ 065 public static final VerificationMethodType KBV = new VerificationMethodType("kbv"); 066 067 068 /** 069 * Physical verification in person by a qualified / authorised person, 070 * the comparison of a physical characteristic (such as face) of the 071 * user with a known image / template of the owner of the claims. 072 */ 073 public static final VerificationMethodType PVP = new VerificationMethodType("pvp"); 074 075 076 /** 077 * Physical verification by a qualified / authorised person when the 078 * user is remote, the comparison of a physical characteristic (such as 079 * face) from an image or video of the user with a known image / 080 * template of the owner of the claims. 081 */ 082 public static final VerificationMethodType PVR = new VerificationMethodType("pvr"); 083 084 085 /** 086 * Biometric verification by an automated system with the user 087 * physically present to the system and the verifier, the use of a 088 * biometric modality (such as face) to match the user with a known 089 * template of the owner of the claims. 090 */ 091 public static final VerificationMethodType BVP = new VerificationMethodType("bvp"); 092 093 094 /** 095 * Biometric verification by an automated system where the user and 096 * capture device is remote to the verifier, the use of a biometric 097 * modality (such as face) to match the user with a known template of 098 * the owner of the claims. 099 */ 100 public static final VerificationMethodType BVR = new VerificationMethodType("bvr"); 101 102 103 /** 104 * Creates a new verification method type. 105 * 106 * @param value The verification method type value. Must not be 107 * {@code null}. 108 */ 109 public VerificationMethodType(final String value) { 110 super(value); 111 } 112 113 114 @Override 115 public boolean equals(final Object object) { 116 117 return object instanceof VerificationMethodType && 118 this.toString().equals(object.toString()); 119 } 120}