new configuration version
This commit is contained in:
		
							parent
							
								
									1e15a53750
								
							
						
					
					
						commit
						3fe2dd2612
					
				|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisAuth" | ||||
|   replicas: 1 | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   gitInitVersion: "1.3.0" | ||||
|   runAsNonRoot: true | ||||
|   ports: | ||||
|  | @ -45,7 +45,7 @@ spec: | |||
|   podDisruptionBudget: | ||||
|     maxUnavailable: "50%" | ||||
|   git: | ||||
|     tag: "r-cb95da141da4bf5257644e8cd01533de10282e43" | ||||
|     tag: "r-b573f4c9983b648b2dd0a02fa08dbe000a3d18af" | ||||
|     dir: "DEFAULT-ADN-AGOV-WORK-OB-PROJECT/DEFAULT-DEFAULT-ADN-AGOV-OB-INV/ob-auth-v1" | ||||
|     credentials: "git-credentials" | ||||
|   keystores: | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ RTENV_SECURITY_CHECK=no_shell | |||
| JAVA_OPTS=( | ||||
|     "-XX:+UseContainerSupport" | ||||
|     "-Dfile.encoding=UTF-8" | ||||
|     "-Dotel.instrumentation.metro.enabled=false" | ||||
|     "-XX:MaxRAMPercentage=80.0" | ||||
|     "-Djava.net.preferIPv4Stack=true" | ||||
|     "-Djava.net.connectionTimeout=10000" | ||||
|  | @ -13,7 +12,7 @@ JAVA_OPTS=( | |||
|     "-javaagent:/opt/agent/opentelemetry-javaagent.jar" | ||||
|     "-Dotel.javaagent.logging=application" | ||||
|     "-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties" | ||||
|     "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" | ||||
|     "-Dotel.resource.attributes=service.version=8.2405.0,service.instance.id=$HOSTNAME" | ||||
|     "-Djavax.net.ssl.trustStore=/var/opt/keys/trust/ob-auth-v1-agov-work-internal-trust-store/truststore.p12" | ||||
|     "-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/ob-auth-v1-agov-work-internal-trust-store/keypass}" | ||||
| ) | ||||
|  |  | |||
|  | @ -410,7 +410,7 @@ | |||
|             <!-- source: pattern://3d382e0cf987535b6fa989b4 --> | ||||
|             <ResultCond name="ok" next="ob-realm_Prepare_Done"/> | ||||
|             <!-- source: pattern://3d382e0cf987535b6fa989b4 --> | ||||
|             <ResultCond name="unsupported" next="ob-realm_ob-auth-failed"/> | ||||
|             <ResultCond name="unsupported" next="ob-realm_ob-realm-idm-pwd-login"/> | ||||
|             <!-- source: pattern://3d382e0cf987535b6fa989b4 --> | ||||
|             <Response value="AUTH_CONTINUE"> | ||||
|                 <!-- source: pattern://3d382e0cf987535b6fa989b4 --> | ||||
|  | @ -501,18 +501,6 @@ | |||
|                 </Gui> | ||||
|             </Response> | ||||
|         </AuthState> | ||||
|         <AuthState name="ob-realm_ob-auth-failed" class="ch.nevis.esauth.auth.states.standard.AuthError" final="false"> | ||||
|             <!-- source: pattern://ac06a836366d44ef4f25aa1e --> | ||||
|             <Response value="AUTH_ERROR"> | ||||
|                 <!-- source: pattern://ac06a836366d44ef4f25aa1e --> | ||||
|                 <Gui name="Error"> | ||||
|                     <!-- source: pattern://ac06a836366d44ef4f25aa1e --> | ||||
|                     <GuiElem name="info" type="error" label="error_99"/> | ||||
|                     <!-- source: pattern://ac06a836366d44ef4f25aa1e --> | ||||
|                     <GuiElem name="submit" type="button" label="continue.button.label"/> | ||||
|                 </Gui> | ||||
|             </Response> | ||||
|         </AuthState> | ||||
|         <AuthState name="ob-realm_Auth_Done" class="ch.nevis.esauth.auth.states.standard.AuthDone" final="false"> | ||||
|             <!-- source: pattern://6e7b5a087711bd0ada9985fe --> | ||||
|             <Response value="AUTH_DONE"> | ||||
|  |  | |||
|  | @ -12,15 +12,15 @@ def getPathFromURL(url) { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| def redirectionPath = getPathFromURL(request['currentResource']) | ||||
| def applicationPaths = ["/register/"] | ||||
| def denyRegexes = [".*[\\n\\r]+.*"] | ||||
| 
 | ||||
| if (request.getSession(false) == null) { | ||||
|     LOG.debug("No session - create new session") | ||||
|     session = request.getSession(true).getData() | ||||
| } | ||||
| 
 | ||||
| def redirectionPath = getPathFromURL(request['currentResource']) | ||||
| def applicationPaths = ["/register/","/pwreset/"] | ||||
| def denyRegexes = [".*[\\n\\r]+.*"] | ||||
| 
 | ||||
| def denied = false | ||||
| if (denyRegexes.size() > 0) { | ||||
|     for (def denyRegex : denyRegexes) { | ||||
|  |  | |||
|  | @ -12,8 +12,6 @@ Configuration: | |||
|         onMismatch: "ACCEPT" | ||||
|   Loggers: | ||||
|     Logger: | ||||
|     - name: "ProductAnalytics" | ||||
|       level: "INFO" | ||||
|     - name: "EsAuthStart" | ||||
|       level: "INFO" | ||||
|     - name: "org.apache.catalina.loader.WebappClassLoader" | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ server: | |||
|   protocol: "https" | ||||
|   port: "8991" | ||||
|   host: "0.0.0.0" | ||||
|   max-threads: "200" | ||||
|   tls: | ||||
|     keystore: "/var/opt/keys/own/ob-auth-v1-default-identity/keystore.p12" | ||||
|     keystore-passphrase: "${exec:/var/opt/keys/own/ob-auth-v1-default-identity/keypass}" | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisFIDO" | ||||
|   replicas: 1 | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   gitInitVersion: "1.3.0" | ||||
|   runAsNonRoot: true | ||||
|   ports: | ||||
|  | @ -46,12 +46,12 @@ spec: | |||
|   podDisruptionBudget: | ||||
|     maxUnavailable: "50%" | ||||
|   git: | ||||
|     tag: "r-ce13d286f79a538141a71c20083a157bcab70b61" | ||||
|     tag: "r-b573f4c9983b648b2dd0a02fa08dbe000a3d18af" | ||||
|     dir: "DEFAULT-ADN-AGOV-WORK-OB-PROJECT/DEFAULT-DEFAULT-ADN-AGOV-OB-INV/ob-fido-uaf-v1" | ||||
|     credentials: "git-credentials" | ||||
|   database: | ||||
|     name: "ob-fido-uaf-v1" | ||||
|     requiredVersion: "8.2411.1" | ||||
|     requiredVersion: "8.2405.0" | ||||
|   keystores: | ||||
|   - "ob-fido-uaf-v1-default-server-identity" | ||||
|   truststores: | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisFIDO" | ||||
|   databaseType: "MariaDB" | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   url: "mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat" | ||||
|   port: 3306 | ||||
|   database: "nevisfido_uaf" | ||||
|  |  | |||
|  | @ -6,5 +6,5 @@ JAVA_OPTS=( | |||
|     "-javaagent:/opt/agent/opentelemetry-javaagent.jar" | ||||
|     "-Dotel.javaagent.logging=application" | ||||
|     "-Dotel.javaagent.configuration-file=/var/opt/nevisfido/default/conf/otel.properties" | ||||
|     "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" | ||||
|     "-Dotel.resource.attributes=service.version=8.2405.0,service.instance.id=$HOSTNAME" | ||||
| ) | ||||
|  | @ -12,8 +12,6 @@ Configuration: | |||
|         onMismatch: "ACCEPT" | ||||
|   Loggers: | ||||
|     Logger: | ||||
|     - name: "ProductAnalytics" | ||||
|       level: "INFO" | ||||
|     - name: "ch.nevis.auth.fido.application.Application" | ||||
|       level: "INFO" | ||||
|     - name: "OpTrace" | ||||
|  |  | |||
|  | @ -3,16 +3,8 @@ | |||
|     "aaid" : "F1D0#0001", | ||||
|     "description" : "Android NEVIS Mobile Authentication PIN Authenticator", | ||||
|     "assertionScheme" : "UAFV1TLV", | ||||
|     "attestationRootCertificates" : [ | ||||
|       "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", | ||||
|       "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" | ||||
|     ], | ||||
|     "attestationTypes" : [ 15879, 15880 ], | ||||
|     "attestationRootCertificates" : [], | ||||
|     "attestationTypes" : [ 15880 ], | ||||
|     "upv" : [ { | ||||
|       "major" : 1, | ||||
|       "minor" : 1 | ||||
|  | @ -21,12 +13,12 @@ | |||
|       "userVerification" : 4 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2, 9 ], | ||||
|     "authenticationAlgorithm" : 9, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 1, | ||||
|     "matcherProtection" : 1, | ||||
|     "publicKeyAlgAndEncodings" : [ 257, 259 ], | ||||
|     "publicKeyAlgAndEncoding" : 256, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -34,16 +26,8 @@ | |||
|     "aaid" : "F1D0#0002", | ||||
|     "description" : "Android NEVIS Mobile Authentication Fingerprint Authenticator", | ||||
|     "assertionScheme" : "UAFV1TLV", | ||||
|     "attestationRootCertificates" : [ | ||||
|       "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", | ||||
|       "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" | ||||
|     ], | ||||
|     "attestationTypes" : [ 15879, 15880 ], | ||||
|     "attestationRootCertificates" : [], | ||||
|     "attestationTypes" : [ 15880 ], | ||||
|     "upv" : [ { | ||||
|       "major" : 1, | ||||
|       "minor" : 1 | ||||
|  | @ -52,12 +36,12 @@ | |||
|       "userVerification" : 2 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2, 9 ], | ||||
|     "authenticationAlgorithm" : 9, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 4, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257, 259 ], | ||||
|     "publicKeyAlgAndEncoding" : 256, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -65,16 +49,8 @@ | |||
|     "aaid" : "F1D0#0003", | ||||
|     "description" : "Android NEVIS Mobile Authentication Biometric Authenticator", | ||||
|     "assertionScheme" : "UAFV1TLV", | ||||
|     "attestationRootCertificates" : [ | ||||
|       "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", | ||||
|       "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" | ||||
|     ], | ||||
|     "attestationTypes" : [ 15879, 15880 ], | ||||
|     "attestationRootCertificates" : [], | ||||
|     "attestationTypes" : [ 15880 ], | ||||
|     "upv" : [ { | ||||
|       "major" : 1, | ||||
|       "minor" : 1 | ||||
|  | @ -83,12 +59,12 @@ | |||
|       "userVerification" : 346 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2, 9 ], | ||||
|     "authenticationAlgorithm" : 9, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 4, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257, 259 ], | ||||
|     "publicKeyAlgAndEncoding" : 256, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -96,16 +72,8 @@ | |||
|     "aaid" : "F1D0#0004", | ||||
|     "description" : "Android NEVIS Mobile Authentication Device Passcode Authenticator", | ||||
|     "assertionScheme" : "UAFV1TLV", | ||||
|     "attestationRootCertificates" : [ | ||||
|       "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", | ||||
|       "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" | ||||
|     ], | ||||
|     "attestationTypes" : [ 15879, 15880 ], | ||||
|     "attestationRootCertificates" : [], | ||||
|     "attestationTypes" : [ 15880 ], | ||||
|     "upv" : [ { | ||||
|       "major" : 1, | ||||
|       "minor" : 1 | ||||
|  | @ -114,12 +82,12 @@ | |||
|       "userVerification" : 132 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2, 9 ], | ||||
|     "authenticationAlgorithm" : 9, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 4, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257, 259 ], | ||||
|     "publicKeyAlgAndEncoding" : 259, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -127,16 +95,8 @@ | |||
|     "aaid" : "F1D0#0005", | ||||
|     "description" : "Android NEVIS Mobile Authentication Password Authenticator", | ||||
|     "assertionScheme" : "UAFV1TLV", | ||||
|     "attestationRootCertificates" : [ | ||||
|       "MIIFYDCCA0igAwIBAgIJAOj6GWMU0voYMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTYwNTI2MTYyODUyWhcNMjYwNTI0MTYyODUyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaOBpjCBozAdBgNVHQ4EFgQUNmHhAHyIBQlRi0RsR/8aTMnqTxIwHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZWFwaXMuY29tL2F0dGVzdGF0aW9uL2NybC8wDQYJKoZIhvcNAQELBQADggIBACDIw41L3KlXG0aMiS//cqrG+EShHUGo8HNsw30W1kJtjn6UBwRM6jnmiwfBPb8VA91chb2vssAtX2zbTvqBJ9+LBPGCdw/E53Rbf86qhxKaiAHOjpvAy5Y3m00mqC0w/Zwvju1twb4vhLaJ5NkUJYsUS7rmJKHHBnETLi8GFqiEsqTWpG/6ibYCv7rYDBJDcR9W62BW9jfIoBQcxUCUJouMPH25lLNcDc1ssqvC2v7iUgI9LeoM1sNovqPmQUiG9rHli1vXxzCyaMTjwftkJLkf6724DFhuKug2jITV0QkXvaJWF4nUaHOTNA4uJU9WDvZLI1j83A+/xnAJUucIv/zGJ1AMH2boHqF8CY16LpsYgBt6tKxxWH00XcyDCdW2KlBCeqbQPcsFmWyWugxdcekhYsAWyoSf818NUsZdBWBaR/OukXrNLfkQ79IyZohZbvabO/X+MVT3rriAoKc8oE2Uws6DF+60PV7/WIPjNvXySdqspImSN78mflxDqwLqRBYkA3I75qppLGG9rp7UCdRjxMl8ZDBld+7yvHVgt1cVzJx9xnyGCC23UaicMDSXYrB4I4WHXPGjxhZuCuPBLTdOLU8YRvMYdEvYebWHMpvwGCF6bAx3JBpIeOQ1wDB5y0USicV3YgYGmi+NZfhA4URSh77Yd6uuJOJENRaNVTzk", | ||||
|       "MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMxMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTGzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/TQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiLZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0bHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7wlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2Ob3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7mD/vFDkzF+wm7cyWpQpCVQ==", | ||||
|       "MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgwNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGICW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2GtkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkxoSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mFmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPzlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVwn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1EuzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHovaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHnw1IdYIg2Wxg7yHcQZemFQg==", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrJblQMA0GCSqGSIb3DQEBCwUAMDoxDTALBgNVBAMMBHRlc3QxCzAJBgNVBAYTAkNIMRwwGgYJKoZIhvcNAQkBFg1mYWtlQGFjbWUuY29tMB4XDTI0MDgxOTE0NTg0MFoXDTI1MDgxOTE0NTg0MFowOjENMAsGA1UEAwwEdGVzdDELMAkGA1UEBhMCQ0gxHDAaBgkqhkiG9w0BCQEWDWZha2VAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCcWDBNmdq13fYHnhsmLndAW+MfbI6PeU4OenqfbrTtQUxqpyqhP6QccPYKX2SK3JeQo5uuF1jRD/9i9vAXI9NyiMMHSItjt9LjRs7bWnY4lokYGCAcSZooR9fGZX63dBSQo73V7MC8LDFGy5rw6dGDOmh0ktKxFzaT/nav8/Mx8FyG7M9+b5OPIBo2yze5Rd5cdErGJuUYa9No93BBr5tq+JfnmR/gwgCOke97ovhNj+sMu5bt946AxC6t00wNyPNVlJHKi1os0c/pWztTQkoRAx/w0JYKS9Afl0ZnGWQQ5PNLHHecp2GzriBpQAPXq81QTbOh5H7SzvhkaFQ4oxstAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD8GOaeMDqj2mzMmCqR6Cr3ChkbDAkdsBa5lOAikMKs7/tJyaw8iA5yH0nyobC58Jb61IATuxABPUALhP3RiNsUhnQQF/Dh+6CnCTD/2wsZmr8vUvNqyCLom+xkMT6Wayd9LYW4UONARv1qCLVI4RhiAr5kcomwqZnuj2DRF697lbSQDoz3iuKrCyBYSCBhS+k7UXpqpMyB2D6quRuPqh7JNtMjGSeMiNpMXhx5f4kl1YWb8NU93LDwHFR2kwnGmPA3M272VitcJC4dz3itGRKm9EYGd6d5D7kdC6lqpZPSIopChvXDyVrXjQgckvgtSGKscs6AvYgjthJGsR2z3Eao=", | ||||
|       "MIIC8jCCAdqgAwIBAgIGAZFrLh2fMA0GCSqGSIb3DQEBCwUAMDoxDjAMBgNVBAMMBXRlc3R5MQswCQYDVQQGEwJVUzEbMBkGCSqGSIb3DQEJARYMYWJjQGFjbWUuY29tMB4XDTI0MDgxOTE1MDc1MFoXDTI1MDgxOTE1MDc1MFowOjEOMAwGA1UEAwwFdGVzdHkxCzAJBgNVBAYTAlVTMRswGQYJKoZIhvcNAQkBFgxhYmNAYWNtZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqitlYBzaxbPF389ZT5xkSS9Le1qdIOuc+dLVpBSWP9PEJhVZROgdOHs5f666iAcBedQm73sew3rpl+02J4fSgGmPkIYm1G2vkIrpt0eB9KzSc0AiLZbrPcFZOLHcOLoqVTfoRhnmAksHDC2f8euNKhCyriK8xlJb/xPfAfCn4r58ZGsQPUS7cJL6FLYh7FjrqfYDS10VOrQvGOALrG5NUj1DdqRq0M+klgs+6oJdUZTtY62BKkWh3N+7moNvrqykpv+ydFUJltgezDcb4Br8Nkw/breSPnomRfyHIcAcfATZcOPJlI8pO0zFZDIz8r7ESMnBhAxNaZgsUhR2XbaqbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGw5XLY6GeFJMP350+djhcVqAw+E4HZqCJu1BMpYC0qS2D85fFi3gNuV0TnqB52abX1WBDDJK1CA0SPdyo/nX+qQzP6Dba1AVRKpRzdcsDsMDN3eMC08tajHgIIf5tNDv+HGE/MT2br4o5oducmQMOfV1NTJO1xhXYVqbsUnyrq3S6kD9WS8zRl6ruY1rT26eCQ4hTLHPaAiVsoXh5TBRXYCvGlAw7o2d9cmsbySforZ2wgdZwmu43B5eHNnt4NlDxZRyz6iEDP0nT877aB2ffsOKHAkJNuTvF5JSfnVzLmiyfa/7NI1ujfzcpA2UUXoWa7WN0wACiZQot8Zmswonjc=" | ||||
|     ], | ||||
|     "attestationTypes" : [ 15879, 15880 ], | ||||
|     "attestationRootCertificates" : [], | ||||
|     "attestationTypes" : [ 15880 ], | ||||
|     "upv" : [ { | ||||
|       "major" : 1, | ||||
|       "minor" : 1 | ||||
|  | @ -145,12 +105,12 @@ | |||
|       "userVerification" : 4 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2, 9 ], | ||||
|     "authenticationAlgorithm" : 9, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 1, | ||||
|     "matcherProtection" : 1, | ||||
|     "publicKeyAlgAndEncodings" : [ 257, 259 ], | ||||
|     "publicKeyAlgAndEncoding" : 256, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -168,12 +128,12 @@ | |||
|       "userVerification" : 4 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2 ], | ||||
|     "authenticationAlgorithm" : 2, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 1, | ||||
|     "matcherProtection" : 1, | ||||
|     "publicKeyAlgAndEncodings" : [ 257 ], | ||||
|     "publicKeyAlgAndEncoding" : 257, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -191,12 +151,12 @@ | |||
|       "userVerification" : 2 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2 ], | ||||
|     "authenticationAlgorithm" : 2, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 6, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257 ], | ||||
|     "publicKeyAlgAndEncoding" : 257, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -214,12 +174,12 @@ | |||
|       "userVerification" : 16 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2 ], | ||||
|     "authenticationAlgorithm" : 2, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 6, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257 ], | ||||
|     "publicKeyAlgAndEncoding" : 257, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -237,12 +197,12 @@ | |||
|       "userVerification" : 4 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2 ], | ||||
|     "authenticationAlgorithm" : 2, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 6, | ||||
|     "matcherProtection" : 2, | ||||
|     "publicKeyAlgAndEncodings" : [ 257 ], | ||||
|     "publicKeyAlgAndEncoding" : 257, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }, | ||||
|  | @ -260,12 +220,12 @@ | |||
|       "userVerification" : 4 | ||||
|     } ] ], | ||||
|     "attachmentHint" : 1, | ||||
|     "authenticationAlgorithms" : [ 2 ], | ||||
|     "authenticationAlgorithm" : 2, | ||||
|     "authenticatorVersion" : 1, | ||||
|     "isSecondFactorOnly" : false, | ||||
|     "keyProtection" : 1, | ||||
|     "matcherProtection" : 1, | ||||
|     "publicKeyAlgAndEncodings" : [ 257 ], | ||||
|     "publicKeyAlgAndEncoding" : 257, | ||||
|     "tcDisplay" : 1, | ||||
|     "tcDisplayContentType" : "text/plain" | ||||
|   }] | ||||
|  | @ -1,102 +1,109 @@ | |||
| server: | ||||
|   port: 9443 | ||||
|   host: "0.0.0.0" | ||||
|   protocol: "https" | ||||
|   host: 0.0.0.0 | ||||
|   protocol: https | ||||
|   tls: | ||||
|     keystore: "/var/opt/keys/own/ob-fido-uaf-v1-default-server-identity/keystore.p12" | ||||
|     keystore-type: "pkcs12" | ||||
|     keystore-passphrase: "${exec:/var/opt/keys/own/ob-fido-uaf-v1-default-server-identity/keypass}" | ||||
|     truststore: "/var/opt/keys/trust/ob-fido-uaf-v1-default-client-trust/truststore.p12" | ||||
|     truststore-type: "pkcs12" | ||||
|     truststore-passphrase: "${exec:/var/opt/keys/trust/ob-fido-uaf-v1-default-client-trust/keypass}" | ||||
|     keystore: /var/opt/keys/own/ob-fido-uaf-v1-default-server-identity/keystore.p12 | ||||
|     keystore-passphrase: ${exec:/var/opt/keys/own/ob-fido-uaf-v1-default-server-identity/keypass} | ||||
|     keystore-type: pkcs12 | ||||
|     truststore: /var/opt/keys/trust/ob-fido-uaf-v1-default-client-trust/truststore.p12 | ||||
|     truststore-passphrase: ${exec:/var/opt/keys/trust/ob-fido-uaf-v1-default-client-trust/keypass} | ||||
|     truststore-type: pkcs12 | ||||
| 
 | ||||
| management: | ||||
|   server: | ||||
|     port: 9089 | ||||
|   healthchecks: | ||||
|     enabled: true | ||||
| 
 | ||||
| credential-repository: | ||||
|   type: nevisidm | ||||
|   rest-url: https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm | ||||
|   administration-url: https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm/services/v1_46/AdminService | ||||
|   keystore: /var/opt/keys/own/nevisfido-techuser-key/keystore.p12 | ||||
|   keystore-passphrase: ${exec:/var/opt/keys/own/nevisfido-techuser-key/keypass} | ||||
|   keystore-type: pkcs12 | ||||
|   truststore: /var/opt/keys/trust/ob-fido-uaf-v1-agov-work-internal-trust-store/truststore.p12 | ||||
|   truststore-passphrase: ${exec:/var/opt/keys/trust/ob-fido-uaf-v1-agov-work-internal-trust-store/keypass} | ||||
|   truststore-type: pkcs12 | ||||
|   admin-service-version: v1_46 | ||||
|   client-id: 100 | ||||
|   user-attribute: extId | ||||
| 
 | ||||
| session-repository: | ||||
|   type: sql | ||||
|   jdbc-url: jdbc:mariadb://mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat:3306/nevisfido_uaf?sslMode=disable&autocommit=true | ||||
|   max-connection-lifetime: 10m | ||||
|   user: ${exec:/var/opt/nevisfido/default/conf/credentials/dbUser} | ||||
|   password: ${exec:/var/opt/nevisfido/default/conf/credentials/dbPassword} | ||||
|   schema-user:  | ||||
|   schema-user-password:  | ||||
|   automatic-db-schema-setup: false | ||||
| 
 | ||||
| fido-uaf: | ||||
|   enabled: true | ||||
|   app-id: "https://auth.agov-w.azure.adnovum.net/nevisfido/uaf/1.1/facets" | ||||
|   app-id: https://auth.agov-w.azure.adnovum.net/nevisfido/uaf/1.1/facets | ||||
|   facets: | ||||
|   - "android:apk-key-hash:*" | ||||
|   - "ios:bundle-id:*" | ||||
|     - android:apk-key-hash:kdcDr+sJVydAkZ6nT/HR3UpJFSd+vPORXLww8DIHV7c | ||||
|     - ios:bundle-id:ch.nevis.accessapp | ||||
|     - android:apk-key-hash:ch.nevis.mobile.authentication.sdk.android.example | ||||
|     - android:apk-key-hash:ch.nevis.mobile.authentication.sdk.flutter.example | ||||
|     - android:apk-key-hash:ch.nevis.mobile.authentication.sdk.react.example | ||||
|     - ios:bundle-id:ch.nevis.mobile.authentication.sdk.ios.example | ||||
|     - ios:bundle-id:ch.nevis.mobile.authentication.sdk.flutter.example | ||||
|     - ios:bundle-id:ch.nevis.mobile.authentication.sdk.objc.proxy.example | ||||
|     - ios:bundle-id:ch.nevis.mobile.authentication.sdk.react.example | ||||
|   metadata: | ||||
|     path: conf/metadata/metadata.json | ||||
|   policy: | ||||
|     path: "conf/policy/" | ||||
|     path: conf/policy/ | ||||
|   timeout: | ||||
|     registration: "300s" | ||||
|     authentication: "300s" | ||||
|     token-registration: "300s" | ||||
|     token-deregistration: "300s" | ||||
|     token-authentication: "300s" | ||||
|     device-request: "300s" | ||||
|     registration: 600s | ||||
|     authentication: 600s | ||||
|     token-registration: 600s | ||||
|     token-authentication: 600s | ||||
|     token-deregistration: 600s | ||||
|   transaction-confirmation: | ||||
|     max-text-length: 2000 | ||||
|   metadata: | ||||
|     path: "conf/metadata/metadata.json" | ||||
|   idm-connection-type: "soap" | ||||
|   dispatchers: | ||||
|   - type: "link" | ||||
|     registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" | ||||
|     authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" | ||||
|     deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" | ||||
|     base-url: "ch.agov.access-t://x-callback-url/authenticate" | ||||
|   basic-full-attestation: | ||||
|     android-verification-level: "default" | ||||
|   authorization: | ||||
|     registration: | ||||
|       type: "sectoken" | ||||
|       truststore: "/var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12" | ||||
|       truststore-type: "pkcs12" | ||||
|       truststore-passphrase: "${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass}" | ||||
|       type: sectoken | ||||
|       truststore: /var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12 | ||||
|       truststore-passphrase: ${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass} | ||||
|       truststore-type: pkcs12 | ||||
|       username-attribute-names: | ||||
|       - "loginId" | ||||
|       - "userid" | ||||
|         - loginId | ||||
|         - userid | ||||
|     authentication: | ||||
|       type: "none" | ||||
|       type: none | ||||
|     deregistration: | ||||
|       type: "sectoken" | ||||
|       truststore: "/var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12" | ||||
|       truststore-type: "pkcs12" | ||||
|       truststore-passphrase: "${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass}" | ||||
|       type: sectoken | ||||
|       truststore: /var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12 | ||||
|       truststore-passphrase: ${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass} | ||||
|       truststore-type: pkcs12 | ||||
|       username-attribute-names: | ||||
|       - "loginId" | ||||
|       - "userid" | ||||
|         - loginId | ||||
|         - userid | ||||
|     create-dispatch-target: | ||||
|       type: "sectoken" | ||||
|       truststore: "/var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12" | ||||
|       truststore-type: "pkcs12" | ||||
|       truststore-passphrase: "${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass}" | ||||
|       type: sectoken | ||||
|       truststore: /var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12 | ||||
|       truststore-passphrase: ${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass} | ||||
|       truststore-type: pkcs12 | ||||
|       username-attribute-names: | ||||
|       - "loginId" | ||||
|       - "userid" | ||||
|         - loginId | ||||
|         - userid | ||||
|     query-dispatch-target: | ||||
|       type: "none" | ||||
|       type: none | ||||
|     delete-dispatch-target: | ||||
|       type: "sectoken" | ||||
|       truststore: "/var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12" | ||||
|       truststore-type: "pkcs12" | ||||
|       truststore-passphrase: "${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass}" | ||||
|       type: sectoken | ||||
|       truststore: /var/opt/keys/trust/ob-auth-signer-trust-store/truststore.p12 | ||||
|       truststore-passphrase: ${exec:/var/opt/keys/trust/ob-auth-signer-trust-store/keypass} | ||||
|       truststore-type: pkcs12 | ||||
|       username-attribute-names: | ||||
|       - "userid" | ||||
| session-repository: | ||||
|   type: "sql" | ||||
|   jdbc-url: "jdbc:mariadb://mariadb-session-store-service.adn-agov-nevisidm-ob-01-uat:3306/nevisfido_uaf?sslMode=disable&autocommit=true" | ||||
|   max-connection-lifetime: "10m" | ||||
|   user: "${exec:/var/opt/nevisfido/default/conf/credentials/dbUser}" | ||||
|   password: "${exec:/var/opt/nevisfido/default/conf/credentials/dbPassword}" | ||||
|   schema-user: "" | ||||
|   schema-user-password: "" | ||||
|   automatic-db-schema-setup: false | ||||
| credential-repository: | ||||
|   type: "nevisidm" | ||||
|   client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720" | ||||
|   user-attribute: "extId" | ||||
|   administration-url: "https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm/services/v1_46/AdminService" | ||||
|   admin-service-version: "v1_46" | ||||
|   rest-url: "https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm" | ||||
|   keystore: "/var/opt/keys/own/nevisfido-techuser-key/keystore.p12" | ||||
|   keystore-type: "pkcs12" | ||||
|   keystore-passphrase: "${exec:/var/opt/keys/own/nevisfido-techuser-key/keypass}" | ||||
|   truststore: "/var/opt/keys/trust/ob-fido-uaf-v1-agov-work-internal-trust-store/truststore.p12" | ||||
|   truststore-type: "pkcs12" | ||||
|   truststore-passphrase: "${exec:/var/opt/keys/trust/ob-fido-uaf-v1-agov-work-internal-trust-store/keypass}" | ||||
|         - userid | ||||
|   dispatchers: | ||||
|     - type: "link" | ||||
|       registration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/registration" | ||||
|       authentication-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/authentication" | ||||
|       deregistration-redeem-url: "https://auth.agov-w.azure.adnovum.net/nevisfido/token/redeem/deregistration" | ||||
|       base-url: "ch.agov.access-t://x-callback-url/authenticate" | ||||
|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisFIDO" | ||||
|   replicas: 1 | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   gitInitVersion: "1.3.0" | ||||
|   runAsNonRoot: true | ||||
|   ports: | ||||
|  | @ -46,7 +46,7 @@ spec: | |||
|   podDisruptionBudget: | ||||
|     maxUnavailable: "50%" | ||||
|   git: | ||||
|     tag: "r-ce13d286f79a538141a71c20083a157bcab70b61" | ||||
|     tag: "r-b573f4c9983b648b2dd0a02fa08dbe000a3d18af" | ||||
|     dir: "DEFAULT-ADN-AGOV-WORK-OB-PROJECT/DEFAULT-DEFAULT-ADN-AGOV-OB-INV/ob-fido2-v1" | ||||
|     credentials: "git-credentials" | ||||
|   keystores: | ||||
|  |  | |||
|  | @ -0,0 +1,2 @@ | |||
| #!/bin/bash | ||||
| echo 'password' | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,17 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIICwzCCAmmgAwIBAgIRAIgdSB3tN8ZLL8RUMEGevQQwCgYIKoZIzj0EAwIwGDEW | ||||
| MBQGA1UEAxMNc2VsZnNpZ25lZC1jYTAeFw0yNDA3MTcwNzI5MDFaFw0yNTA3MTcw | ||||
| NzI5MDFaMFYxCzAJBgNVBAYTAkNIMQwwCgYDVQQIEwNLOFMxDDAKBgNVBAcTA0s4 | ||||
| UzEMMAoGA1UEChMDSzhTMQwwCgYDVQQLEwNLOFMxDzANBgNVBAMTBnNpZ25lcjCC | ||||
| ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOyJFpEW1XRq43YwOU/e9ufh | ||||
| 128Yct8Q3f6HoRaXpUmygAkUsyBwOLWmwNeS80SLyOVegco6kGOdoMvnZsLX3ujf | ||||
| cASkbN+93xhc2MpJXvfWbLbFGrpuQki3V5Banw+UulBuTltFLmxaIRXs1y4Ny2uh | ||||
| US98LjFY3YD+3d5WG7UpgRTJ+x+t+8nqnPVOJ5asfcirM8/lRB4drUAwCOv51XLR | ||||
| fRbqCaXKpVaiw/vD5KpAOUH2N1cikfOTOY6rce0wgVDGS7eoCfkCN4gT1LG+134M | ||||
| p0KT3FBikTGdkH6dQ52nTn7xm5byJvNYzq+2zKGdosYAGurdGGw+KLFsFKCpB40C | ||||
| AwEAAaOBijCBhzAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEG | ||||
| CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAU+2EaFiIx8JLxYnML | ||||
| 5NE8f8gOLlEwJwYDVR0RBCAwHoIGc2lnbmVygRRub3JlcGx5QGxvY2FsLmRvbWFp | ||||
| bjAKBggqhkjOPQQDAgNIADBFAiBxCyNHGWTpj8oma8cY/rUVMZu/BSDH7zzrDhh6 | ||||
| Q9eJegIhAIGivTcBUZvogUDfNo7IXmmxDqZHrjpoLeu6+VgTY9Qs | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -6,5 +6,5 @@ JAVA_OPTS=( | |||
|     "-javaagent:/opt/agent/opentelemetry-javaagent.jar" | ||||
|     "-Dotel.javaagent.logging=application" | ||||
|     "-Dotel.javaagent.configuration-file=/var/opt/nevisfido/default/conf/otel.properties" | ||||
|     "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" | ||||
|     "-Dotel.resource.attributes=service.version=8.2405.0,service.instance.id=$HOSTNAME" | ||||
| ) | ||||
|  | @ -12,8 +12,6 @@ Configuration: | |||
|         onMismatch: "ACCEPT" | ||||
|   Loggers: | ||||
|     Logger: | ||||
|     - name: "ProductAnalytics" | ||||
|       level: "INFO" | ||||
|     - name: "ch.nevis.auth.fido.application.Application" | ||||
|       level: "INFO" | ||||
|     Root: | ||||
|  |  | |||
|  | @ -1,51 +1,52 @@ | |||
| server: | ||||
|   port: 9443 | ||||
|   protocol: "https" | ||||
|   protocol: https | ||||
|   tls: | ||||
|     keystore: "/var/opt/keys/own/ob-fido2-v1-default-identity/keystore.p12" | ||||
|     keystore-passphrase: "${exec:/var/opt/keys/own/ob-fido2-v1-default-identity/keypass}" | ||||
|     keystore-type: "pkcs12" | ||||
|     truststore: "/var/opt/keys/trust/ob-fido2-v1-default-tls-client-trust/truststore.p12" | ||||
|     truststore-passphrase: "${exec:/var/opt/keys/trust/ob-fido2-v1-default-tls-client-trust/keypass}" | ||||
|     truststore-type: "pkcs12" | ||||
|     keystore: /var/opt/keys/own/ob-fido2-v1-default-identity/keystore.p12 | ||||
|     keystore-passphrase: ${exec:/var/opt/keys/own/ob-fido2-v1-default-identity/keypass} | ||||
|     keystore-type: pkcs12 | ||||
| 
 | ||||
| management: | ||||
|   server: | ||||
|     port: 9089 | ||||
|   healthchecks: | ||||
|     enabled: true | ||||
| 
 | ||||
| credential-repository: | ||||
|   type: "nevisidm" | ||||
|   client-id: "cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720" | ||||
|   rest-url: "https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm" | ||||
|   keystore: "/var/opt/keys/own/nevisfido-techuser-key/keystore.p12" | ||||
|   keystore-passphrase: "${exec:/var/opt/keys/own/nevisfido-techuser-key/keypass}" | ||||
|   keystore-type: "pkcs12" | ||||
|   truststore: "/var/opt/keys/trust/ob-fido2-v1-agov-work-internal-trust-store/truststore.p12" | ||||
|   truststore-passphrase: "${exec:/var/opt/keys/trust/ob-fido2-v1-agov-work-internal-trust-store/keypass}" | ||||
|   truststore-type: "pkcs12" | ||||
|   user-attribute: "extId" | ||||
|   type: nevisidm | ||||
|   client-id: cfa9c9b9-119f-4dff-9bb8-86d7c0cf2720 | ||||
|   rest-url: https://idm.adn-agov-nevisidm-01-uat:8989/nevisidm | ||||
|   keystore: /var/opt/keys/own/nevisfido-techuser-key/keystore.p12 | ||||
|   keystore-passphrase: ${exec:/var/opt/keys/own/nevisfido-techuser-key/keypass} | ||||
|   truststore: /var/opt/keys/trust/ob-fido2-v1-agov-work-internal-trust-store/truststore.p12 | ||||
|   truststore-passphrase: ${exec:/var/opt/keys/trust/ob-fido2-v1-agov-work-internal-trust-store/keypass} | ||||
|   user-attribute: extId | ||||
| 
 | ||||
| session-repository: | ||||
|   type: in-memory | ||||
|   jdbc-url:  | ||||
|   max-connection-lifetime:  | ||||
|   user:  | ||||
|   password:  | ||||
|   schema-user:  | ||||
|   schema-user-password:  | ||||
|   automatic-db-schema-setup: true | ||||
| 
 | ||||
| fido2: | ||||
|   enabled: true | ||||
|   rp-name: "AGOV-RelPartName" | ||||
|   rp-id: "adnovum.net" | ||||
|   rp-name: AGOV-RelPartName | ||||
|   rp-id: adnovum.net | ||||
|   origins: | ||||
|   - "https://me.agov-w.azure.adnovum.net" | ||||
|   - "https://nevisidm.agov-w.azure.adnovum.net" | ||||
|   - "https://auth.agov-w.azure.adnovum.net" | ||||
|   - "https://ob.agov-w.azure.adnovum.net" | ||||
|     - https://me.agov-w.azure.adnovum.net | ||||
|     - https://nevisidm.agov-w.azure.adnovum.net | ||||
|     - https://auth.agov-w.azure.adnovum.net | ||||
|     - https://ob.agov-w.azure.adnovum.net | ||||
|   signature-algorithms: | ||||
|   - "RS1" | ||||
|   - "RS256" | ||||
|   - "RS384" | ||||
|   - "RS512" | ||||
|   - "ES256" | ||||
|   - "ES384" | ||||
|   - "ES512" | ||||
|   display-name-source: "loginId" | ||||
|   metadata: | ||||
|     allow-listing-enabled: false | ||||
|   timeout: | ||||
|     user-verification: "300s" | ||||
|     no-user-verification: "120s" | ||||
| session-repository: | ||||
|   type: "in-memory" | ||||
|     - RS1 | ||||
|     - RS256 | ||||
|     - RS384 | ||||
|     - RS512 | ||||
|     - ES256 | ||||
|     - ES384 | ||||
|     - ES512 | ||||
|   display-name-source: loginId | ||||
|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisLogrend" | ||||
|   replicas: 1 | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   gitInitVersion: "1.3.0" | ||||
|   runAsNonRoot: true | ||||
|   ports: | ||||
|  | @ -44,7 +44,7 @@ spec: | |||
|   podDisruptionBudget: | ||||
|     maxUnavailable: "50%" | ||||
|   git: | ||||
|     tag: "r-1c2c7885c3bbd904e080922c99d4a254fdc92559" | ||||
|     tag: "r-b573f4c9983b648b2dd0a02fa08dbe000a3d18af" | ||||
|     dir: "DEFAULT-ADN-AGOV-WORK-OB-PROJECT/DEFAULT-DEFAULT-ADN-AGOV-OB-INV/ob-logrend-v1" | ||||
|     credentials: "git-credentials" | ||||
|   podSecurity: | ||||
|  |  | |||
|  | @ -10,5 +10,5 @@ JAVA_OPTS=( | |||
|     "-javaagent:/opt/agent/opentelemetry-javaagent.jar" | ||||
|     "-Dotel.javaagent.logging=application" | ||||
|     "-Dotel.javaagent.configuration-file=/var/opt/nevislogrend/default/conf/otel.properties" | ||||
|     "-Dotel.resource.attributes=service.version=8.2411.1,service.instance.id=$HOSTNAME" | ||||
|     "-Dotel.resource.attributes=service.version=8.2405.0,service.instance.id=$HOSTNAME" | ||||
| ) | ||||
|  | @ -11,9 +11,7 @@ Configuration: | |||
|         onMatch: "DENY" | ||||
|         onMismatch: "ACCEPT" | ||||
|   Loggers: | ||||
|     Logger: | ||||
|     - name: "ProductAnalytics" | ||||
|       level: "INFO" | ||||
|     Logger: [] | ||||
|     Root: | ||||
|       level: "WARN" | ||||
|       additivity: "false" | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatchLink() { | ||||
| 
 | ||||
|         document.getElementById("mauth_started").style.display = "block"; // show
 | ||||
|  | @ -61,7 +55,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -74,36 +70,21 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|  | @ -118,24 +99,20 @@ | |||
|                     addInput(form, "continue", "true"); // required for custom dispatching in usernameless
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     dispatchLink(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function renderEnrollment() { | ||||
| 
 | ||||
|         // link is provided by a hidden GuiElem
 | ||||
|  | @ -58,53 +52,44 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll() { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
| 
 | ||||
|         // state is held on backend side
 | ||||
|         const request = {}; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientRegistering') { | ||||
| 
 | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
| 
 | ||||
|                     // hide QR-code and information
 | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_qrcode_info").style.display = 'none'; | ||||
|                 } else if (status == 'succeeded') { | ||||
|                 } | ||||
|                 else if (status == 'succeeded') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.log("onboarding successful"); | ||||
|                     console.error("onboarding successful"); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("onboarding failed with status: " + status); | ||||
| 
 | ||||
|  | @ -113,15 +98,8 @@ | |||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     renderEnrollment(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatch(id) { | ||||
| 
 | ||||
|         document.getElementById("mauth_devices").style.display = "none"; // hide selection menu
 | ||||
|  | @ -76,7 +70,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -129,64 +125,47 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
|         isPolling = true; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_qrcode_info").style.display = 'none'; | ||||
|                     document.getElementById("mauth_match_numbers").style.display = 'block'; | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                 } | ||||
| 
 | ||||
|                 if (status == 'succeeded') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     renderDeviceList(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatch() { | ||||
| 
 | ||||
|         console.log("initiating usernameless mobile authentication..."); | ||||
|  | @ -64,7 +58,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -77,66 +73,46 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                 } | ||||
|                 if (status == 'succeeded') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "continue", "true"); // required for custom dispatching in usernameless
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     addInput(form, "fidoUafDone", "true"); // checked by Groovy script
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     dispatch(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatchLink() { | ||||
| 
 | ||||
|         document.getElementById("mauth_started").style.display = "block"; // show
 | ||||
|  | @ -61,7 +55,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -74,36 +70,21 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|  | @ -118,24 +99,20 @@ | |||
|                     addInput(form, "continue", "true"); // required for custom dispatching in usernameless
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     dispatchLink(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function renderEnrollment() { | ||||
| 
 | ||||
|         // link is provided by a hidden GuiElem
 | ||||
|  | @ -58,53 +52,44 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll() { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
| 
 | ||||
|         // state is held on backend side
 | ||||
|         const request = {}; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientRegistering') { | ||||
| 
 | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
| 
 | ||||
|                     // hide QR-code and information
 | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_qrcode_info").style.display = 'none'; | ||||
|                 } else if (status == 'succeeded') { | ||||
|                 } | ||||
|                 else if (status == 'succeeded') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.log("onboarding successful"); | ||||
|                     console.error("onboarding successful"); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("onboarding failed with status: " + status); | ||||
| 
 | ||||
|  | @ -113,15 +98,8 @@ | |||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     renderEnrollment(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatch(id) { | ||||
| 
 | ||||
|         document.getElementById("mauth_devices").style.display = "none"; // hide selection menu
 | ||||
|  | @ -76,7 +70,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -129,64 +125,47 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
|         isPolling = true; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_qrcode_info").style.display = 'none'; | ||||
|                     document.getElementById("mauth_match_numbers").style.display = 'block'; | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                 } | ||||
| 
 | ||||
|                 if (status == 'succeeded') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     renderDeviceList(); | ||||
|  |  | |||
|  | @ -16,12 +16,6 @@ | |||
| 
 | ||||
|     let statusPolling; | ||||
| 
 | ||||
|     let isPolling = false; | ||||
|     let pollingTimeout = null; | ||||
| 
 | ||||
|     const POLLING_INTERVAL = 2000; | ||||
|     const REQUEST_TIMEOUT = 3000; | ||||
| 
 | ||||
|     function dispatch() { | ||||
| 
 | ||||
|         console.log("initiating usernameless mobile authentication..."); | ||||
|  | @ -64,7 +58,9 @@ | |||
|                     }); | ||||
|                     var sessionId = o.sessionId; | ||||
|                     console.log("started polling for session ID: " + sessionId); | ||||
|                     poll(sessionId); | ||||
|                     statusPolling = window.setInterval(function () { | ||||
|                         poll(sessionId); | ||||
|                     }, 2000); | ||||
|                 } | ||||
|                 else { | ||||
|                     console.log("authentication failed: " + o.dispatchResult); | ||||
|  | @ -77,66 +73,46 @@ | |||
|     } | ||||
| 
 | ||||
|     function poll(sessionId) { | ||||
|         if (isPolling) { | ||||
|             return; // Exit if a polling request is already ongoing
 | ||||
|         } | ||||
| 
 | ||||
|         isPolling = true; | ||||
|         const request = {}; | ||||
|         request.fidoUafSessionId = sessionId; | ||||
| 
 | ||||
|         const request = { fidoUafSessionId: sessionId }; | ||||
| 
 | ||||
|         const fetchRequest = fetch("", { | ||||
|         // calling nevisFIDO through nevisAuth on current URL using AJAX
 | ||||
|         fetch("", { | ||||
|             method: "POST", | ||||
|             headers: { | ||||
|                 'Content-Type': 'application/json' | ||||
|             }, | ||||
|             body: JSON.stringify(request) | ||||
|         }); | ||||
| 
 | ||||
|         // Set up the timeout for the fetch request
 | ||||
|         const timeoutPromise = new Promise((_, reject) => { | ||||
|             pollingTimeout = setTimeout(() => { | ||||
|                 reject(new Error('Request timed out')); | ||||
|             }, REQUEST_TIMEOUT); | ||||
|         }); | ||||
| 
 | ||||
|         Promise.race([fetchRequest, timeoutPromise]) | ||||
|             .then(res => res.json()) | ||||
|             .then(o => { | ||||
|                 clearTimeout(pollingTimeout); | ||||
|         }).then(res => { | ||||
|             res.json().then(o => { | ||||
|                 var status = o.status; | ||||
|                 console.log("status: " + status); | ||||
| 
 | ||||
|                 if (status == 'clientAuthenticating') { | ||||
|                     // show process icon
 | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                     document.getElementById("mauth_qrcode").style.display = 'none'; | ||||
|                     document.getElementById("mauth_loading").style.display = 'block'; | ||||
|                 } | ||||
|                 if (status == 'succeeded') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "continue", "true"); // required for custom dispatching in usernameless
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } else if (status == 'failed' || status == 'unknown') { | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); | ||||
|                     addInput(form, "fidoUafDone", "true"); // checked by Groovy script
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|                 else if (status == 'failed' || status == 'unknown') { | ||||
| 
 | ||||
|                     clearInterval(statusPolling); | ||||
|                     console.error("authentication failed with status: " + status); | ||||
| 
 | ||||
|                     // as this is the last call we have to do a top-level request instead of AJAX
 | ||||
|                     const form = createForm(); | ||||
|                     addInput(form, "fidoUafSessionId", sessionId); // checked by Groovy script
 | ||||
|                     document.body.appendChild(form); | ||||
|                     form.submit(); | ||||
|                 } | ||||
|             }) | ||||
|             .catch((err) => { | ||||
|                 console.error("error:", err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 isPolling = false; | ||||
|                 // Schedule the next poll if needed
 | ||||
|                 setTimeout(() => poll(sessionId), POLLING_INTERVAL); | ||||
|             }); | ||||
|         }).catch((err) => console.error("error: ", err)); | ||||
|     } | ||||
| 
 | ||||
|     dispatch(); | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ metadata: | |||
| spec: | ||||
|   type: "NevisProxy" | ||||
|   replicas: 1 | ||||
|   version: "8.2411.1" | ||||
|   version: "8.2405.0" | ||||
|   gitInitVersion: "1.3.0" | ||||
|   runAsNonRoot: true | ||||
|   ports: | ||||
|  | @ -46,7 +46,7 @@ spec: | |||
|   podDisruptionBudget: | ||||
|     maxUnavailable: "50%" | ||||
|   git: | ||||
|     tag: "r-1c2c7885c3bbd904e080922c99d4a254fdc92559" | ||||
|     tag: "r-b573f4c9983b648b2dd0a02fa08dbe000a3d18af" | ||||
|     dir: "DEFAULT-ADN-AGOV-WORK-OB-PROJECT/DEFAULT-DEFAULT-ADN-AGOV-OB-INV/ob-proxy-v1" | ||||
|     credentials: "git-credentials" | ||||
|   keystores: | ||||
|  |  | |||
|  | @ -14,6 +14,3 @@ spec: | |||
|     protocol: "HTTPS" | ||||
|     servicePort: 8443 | ||||
|     serviceName: "ob-proxy-v1" | ||||
|   canary: | ||||
|     header: "canary-agov-w" | ||||
|     cookie: "canary-agov-w" | ||||
|  |  | |||
|  | @ -15,6 +15,8 @@ BC.Tracer.ProgName=isi3web | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.Secrets.Cipher=AES | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoHttpSess=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoResource=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoRequest=0 | ||||
|  | @ -25,6 +27,10 @@ BC.Tracer.DebugProfile.NavajoSSL=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoCookie=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoConIdent=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoSession=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoStart=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoConfig=0 | ||||
|  | @ -35,7 +41,17 @@ BC.Tracer.DebugProfile.NavajoHeader=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoTimer=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.Apache=0 | ||||
| BC.Tracer.DebugProfile.NavajoMgmt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NavajoAdmin=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NevisMgmt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.JmxAmp=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.MBeanSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.HttpAdaptor=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IsiwebOp=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
|  | @ -45,6 +61,10 @@ BC.Tracer.DebugProfile.IW4HttpsConnSrv=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4Esau4ConnSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4NISConnSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4PAMConnSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4X509AuthSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4LogRenSrv=0 | ||||
|  | @ -125,6 +145,10 @@ BC.Tracer.DebugProfile.IW4MappingFlt=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4ResSessFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.JMXSessionFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.JMXRequestFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NevisSession=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4ParamFlt=0 | ||||
|  | @ -137,6 +161,8 @@ BC.Tracer.DebugProfile.IW4CSRFFlt=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4FltMappFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4QmrFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4LogFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IW4WebSocketSrv=0 | ||||
|  | @ -193,16 +219,14 @@ BC.Tracer.DebugProfile.EsauthProvider=0 | |||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IsiOp=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.transTCP=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IO=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.IOSub=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.Alarming=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.AlarmEngine=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPMultiLevelStr=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPPSQLSessSrv=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPFileReader=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPPerfMeter=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPLoadBalance=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.NPCountryIpFlt=0 | ||||
| # source: pattern://b4d2da2fa2d0b060752a1fe2 | ||||
| BC.Tracer.DebugProfile.WSInspFlt=0 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue