Updating documentation.

* including new primitives
* more detailed description of JSON types.
* adding links for algorithms

NOKEYCHECK=True
PiperOrigin-RevId: 252799091
GitOrigin-RevId: ebf54ad59ebc55f4cbee010d67867ee9a95ce987
This commit is contained in:
bleichen
2019-06-12 04:30:20 -07:00
committed by Tink Team
parent 763b2b03ea
commit cf457615e3
2 changed files with 282 additions and 105 deletions
+113 -76
View File
@@ -21,6 +21,9 @@ Type of the test vectors\: [AeadTestVector](types.md#AeadTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
---------------------------- | --------- | ------------ | -------------
aead_aes_siv_cmac_test.json | 828 | 180, 0, 648 | AEAD-AES-SIV-CMAC
aegis128L_test.json | 462 | 350, 0, 112 | AEGIS128L
aegis128_test.json | 465 | 357, 0, 108 | AEGIS128
aegis256_test.json | 460 | 348, 0, 112 | AEGIS256
aes_ccm_test.json | 510 | 366, 0, 144 | AES-CCM
aes_eax_test.json | 171 | 78, 12, 81 | AES-EAX
aes_gcm_siv_test.json | 155 | 88, 0, 67 | AES-GCM-SIV
@@ -154,6 +157,34 @@ Type of the test vectors\:
------------------------ | --------- | ------------ | -------------
ecdh_webcrypto_test.json | 833 | 743, 0, 90 | ECDH
## EcdsaBitcoinVerify {#EcdsaBitcoinVerify}
Test vectors of type EcdsaBitcoinVerify are meant for the verification of a
ECDSA variant used for bitcoin, that add signature non-malleability.
The bitcoin protocol requires that the signature scheme is non-malleable. It
must not be possible to format the same signature in multiple ways. This variant
is described in https\://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki
Test vectors with "result" \: "valid" are valid signatures. Test vectors with
"result" \: "invalid" are invalid. Test vectors with "result" \: "acceptable"
are signatures that may or may not be rejected.
Compared to normal ECDSA signatures, all alternative BER encodings of the
signature are invalid. The value s in the signature must be a positive integer
smaller than n/2.
JSON schema\: ecdsa_bitcoin_verify_schema.json
Type of the test group\: [EcdsaBitcoinTestGroup](types.md#EcdsaBitcoinTestGroup)
Type of the test vectors\:
[AsnSignatureTestVector](types.md#AsnSignatureTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
---------------------------------------- | --------- | ------------ | -------------
ecdsa_secp256k1_sha256_bitcoin_test.json | 374 | 140, 0, 234 | ECDSA
## EcdsaP1363Verify {#EcdsaP1363Verify}
Test vectors of type EcdsaVerify are meant for the verification of IEEE P1363
@@ -177,22 +208,22 @@ Type of the test vectors\: [SignatureTestVector](types.md#SignatureTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
-------------------------------------------- | --------- | ------------ | -------------
ecdsa_brainpoolP224r1_sha224_p1363_test.json | 188 | 118, 3, 67 | ECDSA
ecdsa_brainpoolP256r1_sha256_p1363_test.json | 218 | 147, 3, 68 | ECDSA
ecdsa_brainpoolP320r1_sha384_p1363_test.json | 221 | 150, 3, 68 | ECDSA
ecdsa_brainpoolP384r1_sha384_p1363_test.json | 249 | 178, 3, 68 | ECDSA
ecdsa_brainpoolP512r1_sha512_p1363_test.json | 292 | 222, 3, 67 | ECDSA
ecdsa_secp224r1_sha224_p1363_test.json | 185 | 115, 3, 67 | ECDSA
ecdsa_secp224r1_sha256_p1363_test.json | 213 | 143, 3, 67 | ECDSA
ecdsa_secp224r1_sha512_p1363_test.json | 282 | 212, 3, 67 | ECDSA
ecdsa_secp256k1_sha256_p1363_test.json | 209 | 139, 3, 67 | ECDSA
ecdsa_secp256k1_sha512_p1363_test.json | 278 | 208, 3, 67 | ECDSA
ecdsa_secp256r1_sha256_p1363_test.json | 217 | 144, 4, 69 | ECDSA
ecdsa_secp256r1_sha512_p1363_test.json | 286 | 213, 4, 69 | ECDSA
ecdsa_secp384r1_sha384_p1363_test.json | 237 | 165, 3, 69 | ECDSA
ecdsa_secp384r1_sha512_p1363_test.json | 274 | 202, 3, 69 | ECDSA
ecdsa_secp521r1_sha512_p1363_test.json | 275 | 203, 3, 69 | ECDSA
ecdsa_webcrypto_test.json | 358 | 266, 10, 82 | ECDSA
ecdsa_brainpoolP224r1_sha224_p1363_test.json | 190 | 120, 3, 67 | ECDSA
ecdsa_brainpoolP256r1_sha256_p1363_test.json | 220 | 149, 3, 68 | ECDSA
ecdsa_brainpoolP320r1_sha384_p1363_test.json | 223 | 152, 3, 68 | ECDSA
ecdsa_brainpoolP384r1_sha384_p1363_test.json | 251 | 180, 3, 68 | ECDSA
ecdsa_brainpoolP512r1_sha512_p1363_test.json | 294 | 224, 3, 67 | ECDSA
ecdsa_secp224r1_sha224_p1363_test.json | 187 | 117, 3, 67 | ECDSA
ecdsa_secp224r1_sha256_p1363_test.json | 215 | 145, 3, 67 | ECDSA
ecdsa_secp224r1_sha512_p1363_test.json | 284 | 214, 3, 67 | ECDSA
ecdsa_secp256k1_sha256_p1363_test.json | 211 | 141, 3, 67 | ECDSA
ecdsa_secp256k1_sha512_p1363_test.json | 280 | 210, 3, 67 | ECDSA
ecdsa_secp256r1_sha256_p1363_test.json | 219 | 146, 4, 69 | ECDSA
ecdsa_secp256r1_sha512_p1363_test.json | 288 | 215, 4, 69 | ECDSA
ecdsa_secp384r1_sha384_p1363_test.json | 239 | 167, 3, 69 | ECDSA
ecdsa_secp384r1_sha512_p1363_test.json | 276 | 204, 3, 69 | ECDSA
ecdsa_secp521r1_sha512_p1363_test.json | 277 | 205, 3, 69 | ECDSA
ecdsa_webcrypto_test.json | 362 | 270, 10, 82 | ECDSA
## EcdsaVerify {#EcdsaVerify}
@@ -215,32 +246,32 @@ Type of the test vectors\:
**name** | **tests** | **validity** | **algorithm** {.sortable}
-------------------------------------- | --------- | ------------ | -------------
ecdsa_brainpoolP224r1_sha224_test.json | 351 | 119, 2, 230 | ECDSA
ecdsa_brainpoolP256r1_sha256_test.json | 381 | 148, 0, 233 | ECDSA
ecdsa_brainpoolP320r1_sha384_test.json | 384 | 151, 1, 232 | ECDSA
ecdsa_brainpoolP384r1_sha384_test.json | 412 | 179, 0, 233 | ECDSA
ecdsa_brainpoolP512r1_sha512_test.json | 454 | 223, 0, 231 | ECDSA
ecdsa_secp224r1_sha224_test.json | 348 | 116, 1, 231 | ECDSA
ecdsa_secp224r1_sha256_test.json | 376 | 144, 0, 232 | ECDSA
ecdsa_secp224r1_sha3_224_test.json | 376 | 144, 2, 230 | ECDSA
ecdsa_secp224r1_sha3_256_test.json | 384 | 152, 2, 230 | ECDSA
ecdsa_secp224r1_sha3_512_test.json | 449 | 217, 2, 230 | ECDSA
ecdsa_secp224r1_sha512_test.json | 445 | 213, 1, 231 | ECDSA
ecdsa_secp256k1_sha256_test.json | 372 | 140, 1, 231 | ECDSA
ecdsa_secp256k1_sha3_256_test.json | 380 | 148, 1, 231 | ECDSA
ecdsa_secp256k1_sha3_512_test.json | 445 | 213, 1, 231 | ECDSA
ecdsa_secp256k1_sha512_test.json | 441 | 209, 1, 231 | ECDSA
ecdsa_secp256r1_sha256_test.json | 379 | 145, 1, 233 | ECDSA
ecdsa_secp256r1_sha3_256_test.json | 387 | 153, 1, 233 | ECDSA
ecdsa_secp256r1_sha3_512_test.json | 452 | 218, 2, 232 | ECDSA
ecdsa_secp256r1_sha512_test.json | 448 | 214, 1, 233 | ECDSA
ecdsa_secp384r1_sha384_test.json | 400 | 166, 1, 233 | ECDSA
ecdsa_secp384r1_sha3_384_test.json | 410 | 176, 0, 234 | ECDSA
ecdsa_secp384r1_sha3_512_test.json | 441 | 207, 2, 232 | ECDSA
ecdsa_secp384r1_sha512_test.json | 437 | 203, 2, 232 | ECDSA
ecdsa_secp521r1_sha3_512_test.json | 441 | 208, 0, 233 | ECDSA
ecdsa_secp521r1_sha512_test.json | 439 | 204, 0, 235 | ECDSA
ecdsa_test.json | 1541 | 989, 5, 547 | ECDSA
ecdsa_brainpoolP224r1_sha224_test.json | 353 | 121, 2, 230 | ECDSA
ecdsa_brainpoolP256r1_sha256_test.json | 383 | 150, 0, 233 | ECDSA
ecdsa_brainpoolP320r1_sha384_test.json | 386 | 153, 1, 232 | ECDSA
ecdsa_brainpoolP384r1_sha384_test.json | 414 | 181, 0, 233 | ECDSA
ecdsa_brainpoolP512r1_sha512_test.json | 456 | 225, 0, 231 | ECDSA
ecdsa_secp224r1_sha224_test.json | 350 | 118, 1, 231 | ECDSA
ecdsa_secp224r1_sha256_test.json | 378 | 146, 0, 232 | ECDSA
ecdsa_secp224r1_sha3_224_test.json | 378 | 146, 2, 230 | ECDSA
ecdsa_secp224r1_sha3_256_test.json | 386 | 154, 2, 230 | ECDSA
ecdsa_secp224r1_sha3_512_test.json | 451 | 219, 2, 230 | ECDSA
ecdsa_secp224r1_sha512_test.json | 447 | 215, 1, 231 | ECDSA
ecdsa_secp256k1_sha256_test.json | 374 | 142, 1, 231 | ECDSA
ecdsa_secp256k1_sha3_256_test.json | 382 | 150, 1, 231 | ECDSA
ecdsa_secp256k1_sha3_512_test.json | 447 | 215, 1, 231 | ECDSA
ecdsa_secp256k1_sha512_test.json | 443 | 211, 1, 231 | ECDSA
ecdsa_secp256r1_sha256_test.json | 381 | 147, 1, 233 | ECDSA
ecdsa_secp256r1_sha3_256_test.json | 389 | 155, 1, 233 | ECDSA
ecdsa_secp256r1_sha3_512_test.json | 454 | 220, 2, 232 | ECDSA
ecdsa_secp256r1_sha512_test.json | 450 | 216, 1, 233 | ECDSA
ecdsa_secp384r1_sha384_test.json | 402 | 168, 1, 233 | ECDSA
ecdsa_secp384r1_sha3_384_test.json | 412 | 178, 0, 234 | ECDSA
ecdsa_secp384r1_sha3_512_test.json | 443 | 209, 2, 232 | ECDSA
ecdsa_secp384r1_sha512_test.json | 439 | 205, 2, 232 | ECDSA
ecdsa_secp521r1_sha3_512_test.json | 443 | 210, 0, 233 | ECDSA
ecdsa_secp521r1_sha512_test.json | 441 | 206, 0, 235 | ECDSA
ecdsa_test.json | 1559 | 1007, 5, 547 | ECDSA
## EddsaVerify {#EddsaVerify}
@@ -312,7 +343,7 @@ Type of the test vectors\: [KeywrapTestVector](types.md#KeywrapTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
------------- | --------- | ------------ | -------------
kw_test.json | 162 | 36, 0, 126 | KW
kwp_test.json | 224 | 20, 60, 144 | KWP
kwp_test.json | 254 | 20, 60, 174 | KWP
## MacTest {#MacTest}
@@ -334,20 +365,22 @@ Type of the test vectors\: [MacTestVector](types.md#MacTestVector)
------------------ | --------- | ------------ | -------------
aes_cmac_test.json | 290 | 42, 0, 248 | AES-CMAC
## RsaKeyTest {#RsaKeyTest}
## RsaPublicKeyAsnTest {#RsaPublicKeyAsnTest}
Test vectors of type RsaKeyTest are intended for checking the decoding of RSA
public keys.
Test vectors of type RsaKeyTest are intended for checking the decoding of X509
encoded RSA public keys.
JSON schema\: rsa_key_test_schema.json
JSON schema\: rsa_public_key_asn_test_schema.json
Type of the test group\: [RsaKeyTestGroup](types.md#RsaKeyTestGroup)
Type of the test group\:
[RsaPublicKeyAsnTestGroup](types.md#RsaPublicKeyAsnTestGroup)
Type of the test vectors\: [RsaKeyTestVector](types.md#RsaKeyTestVector)
Type of the test vectors\:
[RsaPublicKeyAsnTestVector](types.md#RsaPublicKeyAsnTestVector)
**name** | **tests** | **validity** | **algorithm** | **missingFlags** {.sortable}
------------- | --------- | ------------ | ------------- | ----------------
rsa_test.json | 334 | 1, 333, 0 | RSA | 333
**name** | **tests** | **validity** | **algorithm** {.sortable}
------------- | --------- | ------------ | -------------
rsa_test.json | 335 | 1, 334, 0 | RSA
## RsaesOaepDecrypt {#RsaesOaepDecrypt}
@@ -365,26 +398,29 @@ Type of the test group\: [RsaesOaepTestGroup](types.md#RsaesOaepTestGroup)
Type of the test vectors\: [RsaesOaepTestVector](types.md#RsaesOaepTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
----------------------------------------- | --------- | ------------ | -------------
rsa_oaep_2048_sha1_mgf1sha1_test.json | 34 | 17, 0, 17 | RSAES-OAEP
rsa_oaep_2048_sha224_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha224_mgf1sha224_test.json | 33 | 17, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha256_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_2048_sha384_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha384_mgf1sha384_test.json | 32 | 16, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha512_mgf1sha512_test.json | 31 | 14, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha256_mgf1sha1_test.json | 30 | 13, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_3072_sha512_mgf1sha512_test.json | 31 | 15, 0, 16 | RSAES-OAEP
rsa_oaep_4096_sha256_mgf1sha1_test.json | 30 | 13, 0, 17 | RSAES-OAEP
rsa_oaep_4096_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_4096_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_4096_sha512_mgf1sha512_test.json | 34 | 17, 0, 17 | RSAES-OAEP
rsa_oaep_misc_test.json | 775 | 460, 315, 0 | RSAES-OAEP
**name** | **tests** | **validity** | **algorithm** {.sortable}
------------------------------------------------------ | --------- | ------------ | -------------
rsa_oaep_2048_sha1_mgf1sha1_test.json | 34 | 17, 0, 17 | RSAES-OAEP
rsa_oaep_2048_sha224_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha224_mgf1sha224_test.json | 33 | 17, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha256_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_2048_sha384_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha384_mgf1sha384_test.json | 32 | 16, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_2048_sha512_mgf1sha512_test.json | 31 | 14, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha256_mgf1sha1_test.json | 30 | 13, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_3072_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_3072_sha512_mgf1sha512_test.json | 31 | 15, 0, 16 | RSAES-OAEP
rsa_oaep_4096_sha256_mgf1sha1_test.json | 30 | 13, 0, 17 | RSAES-OAEP
rsa_oaep_4096_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
rsa_oaep_4096_sha512_mgf1sha1_test.json | 29 | 13, 0, 16 | RSAES-OAEP
rsa_oaep_4096_sha512_mgf1sha512_test.json | 34 | 17, 0, 17 | RSAES-OAEP
rsa_oaep_misc_test.json | 775 | 460, 315, 0 | RSAES-OAEP
rsa_three_primes_oaep_2048_sha1_mgf1sha1_test.json | 34 | 17, 0, 17 | RSAES-OAEP
rsa_three_primes_oaep_3072_sha224_mgf1sha224_test.json | 35 | 19, 0, 16 | RSAES-OAEP
rsa_three_primes_oaep_4096_sha256_mgf1sha256_test.json | 35 | 18, 0, 17 | RSAES-OAEP
## RsaesPkcs1Decrypt {#RsaesPkcs1Decrypt}
@@ -423,9 +459,10 @@ Type of the test group\:
Type of the test vectors\: [SignatureTestVector](types.md#SignatureTestVector)
**name** | **tests** | **validity** | **algorithm** {.sortable}
-------------------------- | --------- | ------------ | -------------
rsa_sig_gen_misc_test.json | 158 | 80, 78, 0 | RSASSA-PKCS1-v1_5
**name** | **tests** | **validity** | **algorithm** {.sortable}
--------------------------------------- | --------- | ------------ | -------------
rsa_sig_gen_misc_test.json | 158 | 80, 78, 0 | RSASSA-PKCS1-v1_5
rsa_sig_gen_misc_three_primes_test.json | 32 | 24, 8, 0 | RSASSA-PKCS1-v1_5
## RsassaPkcs1Verify {#RsassaPkcs1Verify}
@@ -454,7 +491,7 @@ rsa_signature_3072_sha384_test.json | 239 | 7, 1, 231 | RSASSA-PKCS1-v1
rsa_signature_3072_sha512_test.json | 240 | 7, 2, 231 | RSASSA-PKCS1-v1_5
rsa_signature_4096_sha384_test.json | 239 | 7, 1, 231 | RSASSA-PKCS1-v1_5
rsa_signature_4096_sha512_test.json | 239 | 7, 1, 231 | RSASSA-PKCS1-v1_5
rsa_signature_test.json | 377 | 77, 70, 230 | RSASSA-PKCS1-v1_5
rsa_signature_test.json | 377 | 84, 63, 230 | RSASSA-PKCS1-v1_5
## RsassaPssVerify {#RsassaPssVerify}
+169 -29
View File
@@ -2,7 +2,7 @@
# Test vector types
Version\: 0.7
Version\: 0.8r4
[TOC]
@@ -55,7 +55,9 @@ Fields additional to the fields in TestVector are\:
msg | [HexBytes](formats.md#DataTypes) | The message to sign
sig | Asn | An ASN encoded signature for msg
Used in [DsaTestGroup](#DsaTestGroup), [EcdsaTestGroup](#EcdsaTestGroup).
Used in [DsaTestGroup](#DsaTestGroup),
[EcdsaBitcoinTestGroup](#EcdsaBitcoinTestGroup),
[EcdsaTestGroup](#EcdsaTestGroup).
## DaeadTestGroup {#DaeadTestGroup}
@@ -310,13 +312,31 @@ tests | List of [EcdhWebcryptoTestVector](types.md#EcdhWebcryptoTestVector) |
Fields additional to the fields in TestVector are\:
**name** | **type** | **desc**
-------- | -------------------------------- | -------------------------------
public | Json | Public key in webcrypto format
private | Json | Private key in webcrypto format
-------- | -------------------------------- | --------
public | Json | Valid or invalid public key in webcrypto format
private | JwkEcPrivateKey | Private key in webcrypto format
shared | [HexBytes](formats.md#DataTypes) | The shared secret key
Used in [EcdhWebcryptoTestGroup](#EcdhWebcryptoTestGroup).
## EcdsaBitcoinTestGroup {#EcdsaBitcoinTestGroup}
A test group for the bitcoin variant of ECDSA signatures. The test vectors in
this group are meant for signature verification. The test group contains the
same public key for the signatures in multiple representations. The public keys
are valid.
Fields in EcdsaBitcoinTestGroup are\:
**name** | **type** | **desc** | **enum**
-------- | ----------------------------------------------------------------- | -------------------------------- | --------
key | EcPublicKey | unenocded EC public key |
keyDer | [Der](formats.md#DataTypes) | DER encoded public key |
keyPem | [Pem](formats.md#DataTypes) | Pem encoded public key |
sha | [MdName](formats.md#HashFunctions) | the hash function used for ECDSA | 'SHA-256'
type | str | the type of the test | '[EcdsaBitcoinVerify](files.md#EcdsaBitcoinVerify)'
tests | List of [AsnSignatureTestVector](types.md#AsnSignatureTestVector) | a list of test vectors |
## EcdsaP1363TestGroup {#EcdsaP1363TestGroup}
A test group for ECDSA signatures using IEEE P1363 encoding. The test vectors in
@@ -329,7 +349,7 @@ Fields in EcdsaP1363TestGroup are\:
**name** | **type** | **desc** | **enum**
-------- | ----------------------------------------------------------- | --------------------------------------------- | --------
jwk | Json | [optional] the public key in webcrypto format |
jwk | JwkEcPublicKey | [optional] the public key in webcrypto format |
key | EcPublicKey | unenocded EC public key |
keyDer | [Der](formats.md#DataTypes) | DER encoded public key |
keyPem | [Pem](formats.md#DataTypes) | Pem encoded public key |
@@ -428,6 +448,74 @@ ct | [HexBytes](formats.md#DataTypes) | the raw ciphertext (without IV)
Used in [IndCpaTestGroup](#IndCpaTestGroup).
## JwkEcPrivateKey {#JwkEcPrivateKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | ------------------------------------ | --------
crv | str | the curve | 'P-256', 'P-384', 'P-521', 'P-256K'
d | [Base64Url](formats.md#DataTypes) | The private multiplier |
kid | str | the key id |
kty | str | the algorithm | 'EC'
use | str | the purpose of the key |
x | [Base64Url](formats.md#DataTypes) | The x-coordinate of the public point |
y | [Base64Url](formats.md#DataTypes) | The y-coordinate of the public point |
## JwkEcPublicKey {#JwkEcPublicKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | ------------------------------------ | --------
crv | str | the curve | 'P-256', 'P-384', 'P-521', 'P-256K'
kid | str | the key id |
kty | str | the algorithm | 'EC'
use | str | the purpose of the key |
x | [Base64Url](formats.md#DataTypes) | The x-coordinate of the public point |
y | [Base64Url](formats.md#DataTypes) | The y-coordinate of the public point |
## JwkRsaPrivateKey {#JwkRsaPrivateKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | ----------------------------- | --------
d | [Base64Url](formats.md#DataTypes) | the private exponent |
dp | [Base64Url](formats.md#DataTypes) | the value d % (p-1) |
dq | [Base64Url](formats.md#DataTypes) | the value d % (q-1) |
e | [Base64Url](formats.md#DataTypes) | the public exponent |
kid | str | the key identifier |
kty | str | the algorithm | 'RSA'
n | [Base64Url](formats.md#DataTypes) | the modulus of the key |
p | [Base64Url](formats.md#DataTypes) | a prime factor of the modulus |
q | [Base64Url](formats.md#DataTypes) | a prime factor of the modulus |
qi | [Base64Url](formats.md#DataTypes) | the CRT value q^(-1) % p |
use | str | the purpose of the key | 'sig', 'enc'
## JwkRsaPublicKey {#JwkRsaPublicKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | ---------------------- | --------
e | [Base64Url](formats.md#DataTypes) | the public exponent |
kid | str | the key identifier |
kty | str | the algorithm | 'RSA'
n | [Base64Url](formats.md#DataTypes) | the modulus of the key |
use | str | the purpose of the key | 'sig', 'enc'
## JwkXdhPrivateKey {#JwkXdhPrivateKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | --------------------- | --------
crv | str | the DH function | 'X25519', 'X448'
d | [Base64Url](formats.md#DataTypes) | the private key value |
kid | str | the key identifier |
kty | str | the key type | 'OKP'
x | [Base64Url](formats.md#DataTypes) | the public key value |
## JwkXdhPublicKey {#JwkXdhPublicKey}
**name** | **type** | **desc** | **enum**
-------- | --------------------------------- | -------------------- | --------
crv | str | the DH function | 'X25519', 'X448'
kid | str | the key identifier |
kty | str | the key type | 'OKP'
x | [Base64Url](formats.md#DataTypes) | the public key value |
## KeywrapTestGroup {#KeywrapTestGroup}
Fields in KeywrapTestGroup are\:
@@ -481,26 +569,78 @@ tag | [HexBytes](formats.md#DataTypes) | the authentication tag
Used in [MacTestGroup](#MacTestGroup).
## RsaKeyTestGroup {#RsaKeyTestGroup}
## RsaPrivateKey {#RsaPrivateKey}
Fields in RsaKeyTestGroup are\:
Describes an RSA private key. The data type is based on the RSAPrivateKey type
defined in Section A.1.2 of RFC 8017.
**name** | **type** | **desc** | **enum**
-------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------
encoding | str | The encoding of the public key in the test vectors. asn implies PKCS8 encoded public keys. pem implies a PEM encoded public key (compatible with OpenSSL. | 'asn', 'pem'
private | Json | the private key |
type | str | the type of the test | '[RsaKeyTest](files.md#RsaKeyTest)'
tests | List of [RsaKeyTestVector](types.md#RsaKeyTestVector) | a list of test vectors |
**name** | **type** | **desc** | **enum**
--------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | --------
coefficient | [BigInt](formats.md#DataTypes) | the CRT value q^(-1) % p |
exponent1 | [BigInt](formats.md#DataTypes) | the value d % (p-1) |
exponent2 | [BigInt](formats.md#DataTypes) | the value d % (q-1) |
modulus | [BigInt](formats.md#DataTypes) | the modulus of the key |
otherPrimeInfos | List | list of triples [prime, exponent, coefficient] |
prime1 | [BigInt](formats.md#DataTypes) | p: a prime factor of the modulus |
prime2 | [BigInt](formats.md#DataTypes) | q: a prime factor of the modulus |
privateExponent | [BigInt](formats.md#DataTypes) | the private exponent |
publicExponent | [BigInt](formats.md#DataTypes) | the public exponent |
version | int | The version of the private key. This is 0 for keys with no otherPrimeInfos and 1 for keys with otherPrimeInfos, i.e. multiprime keys. | 0, 1
## RsaKeyTestVector {#RsaKeyTestVector}
## RsaPublicKey {#RsaPublicKey}
Describes an RSA private key. The data type is based on the RSAPublicKey type
defined in Appendix C of RFC 8017.
**name** | **type** | **desc** | **enum**
-------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | --------
modulus | [BigInt](formats.md#DataTypes) | the modulus of the key |
publicExponent | [BigInt](formats.md#DataTypes) | the public exponent |
version | int | The version of the private key. This is 0 for keys with no otherPrimeInfos and 1 for keys with otherPrimeInfos, i.e. multiprime keys. | 0, 1
## RsaPublicKeyAsnTestGroup {#RsaPublicKeyAsnTestGroup}
Fields in RsaPublicKeyAsnTestGroup are\:
**name** | **type** | **desc** | **enum**
------------- | ----------------------------------------------------------------------- | --------------------------- | --------
privateKey | RsaPrivateKey | the private key |
privateKeyAsn | [Der](formats.md#DataTypes) | PKCS #8 encoded private key |
publicKeyAsn | [Der](formats.md#DataTypes) | the X509 encoded public key |
type | str | the type of the test | '[RsaPublicKeyAsnTest](files.md#RsaPublicKeyAsnTest)'
tests | List of [RsaPublicKeyAsnTestVector](types.md#RsaPublicKeyAsnTestVector) | a list of test vectors |
## RsaPublicKeyAsnTestVector {#RsaPublicKeyAsnTestVector}
Fields additional to the fields in TestVector are\:
**name** | **type** | **desc**
-------- | -------------------------------- | ----------------------
public | [HexBytes](formats.md#DataTypes) | the encoded public key
**name** | **type** | **desc**
-------- | --------------------------- | ----------------------------------
encoded | [Asn](formats.md#DataTypes) | a modified X509 encoded public key
Used in [RsaKeyTestGroup](#RsaKeyTestGroup).
Used in [RsaPublicKeyAsnTestGroup](#RsaPublicKeyAsnTestGroup).
## RsaPublicKeyPemTestGroup {#RsaPublicKeyPemTestGroup}
Fields in RsaPublicKeyPemTestGroup are\:
**name** | **type** | **desc** | **enum**
------------- | ----------------------------------------------------------------------- | ---------------------------------------- | --------
privateKey | RsaPrivateKey | the private key |
privateKeyPem | [Pem](formats.md#DataTypes) | PEM encoded private key |
publicKeyPem | [Pem](formats.md#DataTypes) | the corresponding PEM encoded public key |
type | str | the type of the test | '[RsaPublicKeyPemTest](files.md#RsaPublicKeyPemTest)'
tests | List of [RsaPublicKeyPemTestVector](types.md#RsaPublicKeyPemTestVector) | a list of test vectors |
## RsaPublicKeyPemTestVector {#RsaPublicKeyPemTestVector}
Fields additional to the fields in TestVector are\:
**name** | **type** | **desc**
-------- | --------------------------- | ---------------------------------
encoded | [Pem](formats.md#DataTypes) | a modified PEM encoded public key
Used in [RsaPublicKeyPemTestGroup](#RsaPublicKeyPemTestGroup).
## RsaesOaepTestGroup {#RsaesOaepTestGroup}
@@ -513,7 +653,7 @@ e | [BigInt](formats.md#DataTypes) |
mgf | str | the message generating function (e.g. MGF1) | |
mgfSha | [MdName](formats.md#HashFunctions) | The hash function used for the message generating function. | |
n | [BigInt](formats.md#DataTypes) | The modulus of the key | |
privateKeyJwk | JSON | [optional] JSON encoded private key | 0.7 |
privateKeyJwk | JwkRsaPrivateKey | [optional] JSON encoded private key | 0.7 |
privateKeyPem | [Pem](formats.md#DataTypes) | Pem encoded private key | |
privateKeyPkcs8 | [Der](formats.md#DataTypes) | Pkcs 8 encoded private key | |
sha | [MdName](formats.md#HashFunctions) | The hash function for hashing the label. | |
@@ -541,7 +681,7 @@ Fields in RsaesPkcs1TestGroup are\:
d | [BigInt](formats.md#DataTypes) | The private exponent | |
e | [BigInt](formats.md#DataTypes) | The public exponent | |
n | [BigInt](formats.md#DataTypes) | The modulus of the key | |
privateKeyJwk | JSON | JWK encoded private key | 0.7 |
privateKeyJwk | JwkRsaPrivateKey | JWK encoded private key | 0.7 |
privateKeyPem | [Pem](formats.md#DataTypes) | Pem encoded private key | |
privateKeyPkcs8 | [Der](formats.md#DataTypes) | Pkcs 8 encoded private key. | |
type | str | the type of the test | | '[RsaesPkcs1Decrypt](files.md#RsaesPkcs1Decrypt)'
@@ -568,12 +708,12 @@ d | [BigInt](formats.md#DataTypes) | Th
e | [BigInt](formats.md#DataTypes) | The public exponent | | |
keyAsn | [Der](formats.md#DataTypes) | DER encoding of the sequence [n, e] | | |
keyDer | [Der](formats.md#DataTypes) | DER encoding of the public key | | |
keyJwk | Json | [Optional] Private key in JWK format | RFC 7517 | 0.7 |
keyJwk | JwkRsaPublicKey | [Optional] public key in JWK format | RFC 7517 | 0.7 |
keyPem | [Pem](formats.md#DataTypes) | Pem encoded public key | | |
keySize | int | the size of the modulus in bits | | |
n | [BigInt](formats.md#DataTypes) | The modulus of the key | | |
privateKeyDer | [Der](formats.md#DataTypes) | DER encoding of the private key | | |
privateKeyJwk | Json | [Optional] Private key in JWK format | RFC 7517 | 0.7 |
privateKeyJwk | JwkRsaPrivateKey | [Optional] Private key in JWK format | RFC 7517 | 0.7 |
privateKeyPem | Pem | Pem encoded private key | | |
sha | [MdName](formats.md#HashFunctions) | the hash function used for the message | | |
type | str | the type of the test | | | '[RsassaPkcs1Generate](files.md#RsassaPkcs1Generate)'
@@ -589,7 +729,7 @@ d | [BigInt](formats.md#DataTypes) | The pri
e | [BigInt](formats.md#DataTypes) | The public exponent | | |
keyAsn | [Der](formats.md#DataTypes) | ASN encoding of the sequence [n, e] | | |
keyDer | [Der](formats.md#DataTypes) | ASN encoding of the public key | | |
keyJwk | Json | The public key in JWK format. The key is missing if the signature algorithm for the given hash is not defined. | RFC 7517 | 0.7 |
keyJwk | JwkRsaPublicKey | The public key in JWK format. The key is missing if the signature algorithm for the given hash is not defined. | RFC 7517 | 0.7 |
keyPem | [Pem](formats.md#DataTypes) | Pem encoded public key | | |
keySize | int | the size of the modulus in bits | | |
n | [BigInt](formats.md#DataTypes) | The modulus of the key | | |
@@ -733,11 +873,11 @@ the jwk format.
Fields additional to the fields in TestVector are\:
**name** | **type** | **desc** | **ref**
-------- | -------------------------------- | ----------------------------- | -------
public | JSON | the public key in jwk format | RFC 8037
private | JSON | the private key in jwk format | RFC 8037
shared | [HexBytes](formats.md#DataTypes) | the shared secret |
**name** | **type** | **desc** | **ref**
-------- | -------------------------------- | ----------------------------------------- | -------
public | JSON | valid or invalid public key in jwk format | RFC 8037
private | JwkXdhPrivateKey | the private key in jwk format | RFC 8037
shared | [HexBytes](formats.md#DataTypes) | the shared secret |
Used in [XdhJwkTestGroup](#XdhJwkTestGroup).