001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2016, 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; 019 020 021import net.jcip.annotations.Immutable; 022 023import com.nimbusds.oauth2.sdk.id.Identifier; 024 025 026/** 027 * Identity trust framework identifiers. 028 * 029 * <p>Related specifications: 030 * 031 * <ul> 032 * <li>OpenID Connect for Identity Assurance 1.0, sections 4.1.1 and 11.1. 033 * </ul> 034 */ 035@Immutable 036public final class IdentityTrustFramework extends Identifier { 037 038 039 private static final long serialVersionUID = 378614456182831323L; 040 041 042 /** 043 * The OP verifies and maintains user identities in conforms with the 044 * German Anti-Money Laundering Law. 045 */ 046 public static final IdentityTrustFramework DE_AML = new IdentityTrustFramework("de_aml"); 047 048 049 /** 050 * The OP is able to attest user identities in accordance with the EU 051 * regulation No 910/2014 (eIDAS) at the identification assurance 052 * level "Substantial". 053 */ 054 public static final IdentityTrustFramework EIDAS_IAL_SUBSTANTIAL = new IdentityTrustFramework("eidas_ial_substantial"); 055 056 057 /** 058 * The OP is able to attest user identities in accordance with the EU 059 * regulation No 910/2014 (eIDAS) at the identification assurance 060 * level "High". 061 */ 062 public static final IdentityTrustFramework EIDAS_IAL_HIGH = new IdentityTrustFramework("eidas_ial_high"); 063 064 065 /** 066 * The OP is able to attest user identities in accordance with the NIST 067 * Special Publication 800-63A at the Identity Assurance Level 2. 068 */ 069 public static final IdentityTrustFramework NIST_800_63A_IAL_2 = new IdentityTrustFramework("nist_800_63A_ial_2"); 070 071 072 /** 073 * The OP is able to attest user identities in accordance with the NIST 074 * Special Publication 800-63A at the Identity Assurance Level 3. 075 */ 076 public static final IdentityTrustFramework NIST_800_63A_IAL_3 = new IdentityTrustFramework("nist_800_63A_ial_3"); 077 078 079 /** 080 * The OP verifies and maintains user identities in conforms with the 081 * Japanese Act on Prevention of Transfer of Criminal Proceeds. 082 */ 083 public static final IdentityTrustFramework JP_AML = new IdentityTrustFramework("jp_aml"); 084 085 086 /** 087 * The OP verifies and maintains user identities in conformance with 088 * the Japanese Act for Identification, etc. by Mobile Voice 089 * Communications Carriers of Their Subscribers, etc. and for 090 * Prevention of Improper Use of Mobile Voice Communications Services. 091 */ 092 public static final IdentityTrustFramework JP_MPIUPA = new IdentityTrustFramework("jp_mpiupa"); 093 094 095 /** 096 * Creates a new identity trust framework. 097 * 098 * @param value The identity trust framework value. Must not be 099 * {@code null}. 100 */ 101 public IdentityTrustFramework(final String value) { 102 super(value); 103 } 104 105 106 @Override 107 public boolean equals(final Object object) { 108 109 return object instanceof IdentityTrustFramework && 110 this.toString().equals(object.toString()); 111 } 112}