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, section 5.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 conformance with
044         * the 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).
052         */
053        public static final IdentityTrustFramework EIDAS = new IdentityTrustFramework("eidas");
054        
055        
056        /**
057         * The OP is able to attest user identities in accordance with the EU
058         * regulation No 910/2014 (eIDAS) at the identification assurance
059         * level "Substantial".
060         */
061        @Deprecated
062        public static final IdentityTrustFramework EIDAS_IAL_SUBSTANTIAL = new IdentityTrustFramework("eidas_ial_substantial");
063        
064        
065        /**
066         * The OP is able to attest user identities in accordance with the EU
067         * regulation No 910/2014 (eIDAS) at the identification assurance
068         * level "High".
069         */
070        @Deprecated
071        public static final IdentityTrustFramework EIDAS_IAL_HIGH = new IdentityTrustFramework("eidas_ial_high");
072        
073        
074        /**
075         * The OP is able to attest user identities in accordance with the NIST
076         * Special Publication 800-63A.
077         */
078        public static final IdentityTrustFramework NIST_800_63A = new IdentityTrustFramework("nist_800_63A");
079        
080        
081        /**
082         * The OP is able to attest user identities in accordance with the NIST
083         * Special Publication 800-63A at the Identity Assurance Level 2.
084         */
085        @Deprecated
086        public static final IdentityTrustFramework NIST_800_63A_IAL_2 = new IdentityTrustFramework("nist_800_63A_ial_2");
087        
088        
089        /**
090         * The OP is able to attest user identities in accordance with the NIST
091         * Special Publication 800-63A at the Identity Assurance Level 3.
092         */
093        @Deprecated
094        public static final IdentityTrustFramework NIST_800_63A_IAL_3 = new IdentityTrustFramework("nist_800_63A_ial_3");
095        
096        
097        /**
098         * The OP verifies and maintains user identities in conformance with
099         * the Japanese Act on Prevention of Transfer of Criminal Proceeds.
100         */
101        public static final IdentityTrustFramework JP_AML = new IdentityTrustFramework("jp_aml");
102        
103        
104        /**
105         * The OP verifies and maintains user identities in conformance with
106         * the Japanese Act for Identification, etc. by Mobile Voice
107         * Communications Carriers of Their Subscribers, etc. and for
108         * Prevention of Improper Use of Mobile Voice Communications Services.
109         */
110        public static final IdentityTrustFramework JP_MPIUPA = new IdentityTrustFramework("jp_mpiupa");
111        
112        
113        /**
114         * The OP verifies and maintains user identities in conformance with
115         * the Czech Anti-Money Laundering Law.
116         */
117        public static final IdentityTrustFramework CZ_AML = new IdentityTrustFramework("cz_aml");
118        
119        
120        /**
121         * The OP verifies and maintains user identities in conforms with the
122         * German Telecommunications Law (here ยง111).
123         */
124        public static final IdentityTrustFramework DE_TKG111 = new IdentityTrustFramework("de_tkg111");
125        
126        
127        /**
128         * The OP verifies and maintains user identities in conformance with
129         * the Belgian law on electronic identification.
130         */
131        public static final IdentityTrustFramework BE_ITSME = new IdentityTrustFramework("be_itsme");
132        
133        
134        /**
135         * The OP verifies and maintains user identities in conformance with
136         * the requirements of the Swedish e-ID.
137         */
138        public static final IdentityTrustFramework SE_BANKID = new IdentityTrustFramework("se_bankid");
139        
140        
141        /**
142         * The OP is accredited by the Agency for Digital Italy as an identity
143         * provider in the Public Digital Identity System (SPID).
144         */
145        public static final IdentityTrustFramework IT_SPID = new IdentityTrustFramework("it_spid");
146        
147        
148        /**
149         * The OP is accredited as an identity provider in the Dutch Trust
150         * Framework for Electronic Identification.
151         */
152        public static final IdentityTrustFramework NL_EHERKENNING = new IdentityTrustFramework("nl_eHerkenning");
153        
154        
155        /**
156         * The OP is certified as an identity service provider in the UK trust
157         * framework for digital identity and attributes.
158         */
159        public static final IdentityTrustFramework UK_TFIDA = new IdentityTrustFramework("uk_tfida");
160        
161        
162        /**
163         * The OP is accredited as an identity service provider under the AU
164         * Trusted Digital Identity Framework.
165         */
166        public static final IdentityTrustFramework AU_TDIF = new IdentityTrustFramework("au_tdif");
167        
168        
169        /**
170         * Creates a new identity trust framework.
171         *
172         * @param value The identity trust framework value. Must not be
173         *              {@code null}.
174         */
175        public IdentityTrustFramework(final String value) {
176                super(value);
177        }
178        
179        
180        @Override
181        public boolean equals(final Object object) {
182                
183                return object instanceof IdentityTrustFramework &&
184                        this.toString().equals(object.toString());
185        }
186}