@@ -91,61 +91,6 @@ import scala.util.Try
91
91
92
92
object TestAuthenticator {
93
93
94
- def main (args : Array [String ]): Unit = {
95
- val attestationCertBytes : ByteArray =
96
- ByteArray .fromHex(" 308201313081d8a003020102020441c4567d300a06082a8648ce3d0403023021311f301d0603550403131646697265666f782055324620536f667420546f6b656e301e170d3137303930353134303030345a170d3137303930373134303030345a3021311f301d0603550403131646697265666f782055324620536f667420546f6b656e3059301306072a8648ce3d020106082a8648ce3d03010703420004f9b7dfc17c8a7dcaacdaaad402c7f1f8570e3e9165f6ce2b9b9a4f64333405e1b952c516560bbe7d304d2da3b6582734dadd980e379b0f86a3e42cc657cffe84300a06082a8648ce3d0403020348003045022067fd4da98db1ddbcef53041d3cfd15ed6b8315cb4116889c2eabe6b50b7f985f02210098842f6835ee18181acc765f642fa124556121f418e108c5ec1bb22e9c28b76b" )
97
- val publicKeyHex : String =
98
- " 04f9b7dfc17c8a7dcaacdaaad402c7f1f8570e3e9165f6ce2b9b9a4f64333405e1b952c516560bbe7d304d2da3b6582734dadd980e379b0f86a3e42cc657cffe84"
99
- val signedDataBytes : ByteArray =
100
- ByteArray .fromHex(" 0049960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d976354543ac68315afe4cd7947adf5f7e8e7dc87ddf4582ef6e7fb467e5cad098af50008f926c96b3248cb3733c70a10e3e0995af0892220d6293780335390594e35a73a3743ed97c8e4fd9c0e183d60ccb764edac2fcbdb84b6b940089be98744673db427ce9d4f09261d4f6535bf52dcd216d9ba81a88f2ed5d7fa04bb25e641a3cd7ef9922fdb8d7d4b9f81a55f661b74f26d97a9382dda9a6b62c378cf6603b9f1218a87c158d88bf1ac51b0e4343657de0e9a6b6d60289fed2b46239abe00947e6a04c6733148283cb5786a678afc959262a71be0925da9992354ba6438022d68ae573285e5564196d62edfc46432cba9393c6138882856a0296b41f5b4b97e00e935" )
101
- val signatureBytes : ByteArray =
102
- ByteArray .fromHex(" 3046022100a78ca2cb9feb402acc9f50d16d96487821122bbbdf70c8745a6d37161a16de09022100e10db1bf39b73b18acf9236f758558a7811e04a7901d12f7f34f503b171fe51e" )
103
-
104
- verifyU2fExampleWithCert(
105
- attestationCertBytes,
106
- signedDataBytes,
107
- signatureBytes,
108
- )
109
- verifyU2fExampleWithExplicitParams(
110
- publicKeyHex,
111
- signedDataBytes,
112
- signatureBytes,
113
- )
114
-
115
- println(generateAttestationCertificate())
116
-
117
- val (credential, _) = createBasicAttestedCredential(attestationMaker =
118
- AttestationMaker .packed(
119
- AttestationSigner .selfsigned(COSEAlgorithmIdentifier .ES256 )
120
- )
121
- )
122
-
123
- println(credential)
124
- println(
125
- s " Client data: ${new String (credential.getResponse.getClientDataJSON.getBytes, " UTF-8" )}"
126
- )
127
- println(s " Client data: ${credential.getResponse.getClientDataJSON.getHex}" )
128
- println(s " Client data: ${credential.getResponse.getClientData}" )
129
- println(s " Attestation object: ${credential.getResponse.getAttestationObject.getHex}" )
130
- println(s " Attestation object: ${credential.getResponse.getAttestation}" )
131
-
132
- println(" Javascript:" )
133
- println(s """ parseCreateCredentialResponse({ response: { attestationObject: new Buffer(" ${credential.getResponse.getAttestationObject.getHex}", 'hex'), clientDataJSON: new Buffer(" ${credential.getResponse.getClientDataJSON.getHex}", 'hex') } }) """ )
134
-
135
- println(s " Public key: ${BinaryUtil .toHex(Defaults .credentialKey.getPublic.getEncoded)}" )
136
- println(s " Private key: ${BinaryUtil .toHex(Defaults .credentialKey.getPrivate.getEncoded)}" )
137
-
138
- val assertion = createAssertion()
139
- println(
140
- s " Assertion signature: ${assertion.getResponse.getSignature.getHex}"
141
- )
142
- println(s " Authenticator data: ${assertion.getResponse.getAuthenticatorData.getHex}" )
143
- println(s " Client data: ${assertion.getResponse.getClientDataJSON.getHex}" )
144
- println(
145
- s " Client data: ${new String (assertion.getResponse.getClientDataJSON.getBytes, " UTF-8" )}"
146
- )
147
- }
148
-
149
94
object Defaults {
150
95
val aaguid : ByteArray = new ByteArray (
151
96
Array (0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 )
@@ -333,41 +278,6 @@ object TestAuthenticator {
333
278
}
334
279
}
335
280
336
- def makeCreateCredentialExample (
337
- publicKeyCredential : PublicKeyCredential [
338
- AuthenticatorAttestationResponse ,
339
- ClientRegistrationExtensionOutputs ,
340
- ]
341
- ): String =
342
- s """ Attestation object: ${publicKeyCredential.getResponse.getAttestationObject.getHex}
343
- |Client data: ${publicKeyCredential.getResponse.getClientDataJSON.getHex}
344
- """ .stripMargin
345
-
346
- def makeAssertionExample (alg : COSEAlgorithmIdentifier ): String = {
347
- val (_, keypair) =
348
- createCredential(attestationMaker = AttestationMaker .default())
349
- val assertion = createAssertion(alg, credentialKey = keypair)
350
-
351
- s """
352
- |val keyAlgorithm: COSEAlgorithmIdentifier = COSEAlgorithmIdentifier. ${alg.name}
353
- |val authenticatorData: ByteArray = ByteArray.fromHex(" ${assertion.getResponse.getAuthenticatorData.getHex}")
354
- |val clientDataJson: String = "\"" ${new String (
355
- assertion.getResponse.getClientDataJSON.getBytes,
356
- StandardCharsets .UTF_8 ,
357
- )}""\"
358
- |val credentialId: ByteArray = ByteArray.fromBase64Url(" ${assertion.getId.getBase64Url}")
359
- |val credentialKey: KeyPair = TestAuthenticator.importEcKeypair(
360
- | privateBytes = ByteArray.fromHex(" ${new ByteArray (
361
- keypair.getPrivate.getEncoded
362
- ).getHex}"),
363
- | publicBytes = ByteArray.fromHex(" ${new ByteArray (
364
- keypair.getPublic.getEncoded
365
- ).getHex}")
366
- |)
367
- |val signature: ByteArray = ByteArray.fromHex(" ${assertion.getResponse.getSignature.getHex}")
368
- """ .stripMargin
369
- }
370
-
371
281
private def createCredential (
372
282
aaguid : ByteArray = Defaults .aaguid,
373
283
attestationMaker : AttestationMaker ,
0 commit comments