| /* vim: set ts=2 et sw=2 tw=80: */ |
| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
| * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| /* This file is generated from sources in nss/gtests/common/wycheproof |
| * automatically and should not be touched manually. |
| * Generation is trigged by calling ./mach wycheproof */ |
| |
| #ifndef test_structs_h__ |
| #define test_structs_h__ |
| |
| #include <string> |
| #include <vector> |
| #include "secoidt.h" |
| #include "pkcs11t.h" |
| |
| typedef struct AesCbcTestVectorStr { |
| uint32_t id; |
| std::string key; |
| std::string msg; |
| std::string iv; |
| std::string ciphertext; |
| bool valid; |
| } AesCbcTestVector; |
| |
| typedef struct AesCmacTestVectorStr { |
| uint32_t id; |
| std::string comment; |
| std::string key; |
| std::string msg; |
| std::string tag; |
| bool invalid; |
| } AesCmacTestVector; |
| typedef AesCmacTestVector HmacTestVector; |
| |
| typedef struct AesGcmKatValueStr { |
| uint32_t id; |
| std::string key; |
| std::string plaintext; |
| std::string additional_data; |
| std::string iv; |
| std::string hash_key; |
| std::string ghash; |
| std::string result; |
| bool invalid_ct; |
| bool invalid_iv; |
| } AesGcmKatValue; |
| |
| typedef struct ChaChaTestVectorStr { |
| uint32_t id; |
| std::vector<uint8_t> plaintext; |
| std::vector<uint8_t> aad; |
| std::vector<uint8_t> key; |
| std::vector<uint8_t> iv; |
| std::vector<uint8_t> ciphertext; |
| bool invalid_tag; |
| bool invalid_iv; |
| } ChaChaTestVector; |
| |
| typedef struct EcdsaTestVectorStr { |
| SECOidTag hash_oid; |
| uint32_t id; |
| std::vector<uint8_t> sig; |
| std::vector<uint8_t> public_key; |
| std::vector<uint8_t> msg; |
| bool valid; |
| } EcdsaTestVector; |
| |
| typedef EcdsaTestVector DsaTestVector; |
| |
| typedef struct EcdhTestVectorStr { |
| uint32_t id; |
| std::vector<uint8_t> private_key; |
| std::vector<uint8_t> public_key; |
| std::vector<uint8_t> secret; |
| bool invalid_asn; |
| bool valid; |
| } EcdhTestVector; |
| |
| typedef struct HkdfTestVectorStr { |
| uint32_t id; |
| std::string ikm; |
| std::string salt; |
| std::string info; |
| std::string okm; |
| uint32_t size; |
| bool valid; |
| } HkdfTestVector; |
| |
| enum class IkeTestType { |
| ikeGxy, /* CKM_NSS_IKE_PRF_DERIVE case 1 */ |
| ikeV1Psk, /* CKM_NSS_IKE_PRF_DERIVE case 2 */ |
| ikeV2Rekey, /* CKM_NSS_IKE_PRF_DERIVE case 3 */ |
| ikeV1, /* CKM_NSS_IKE1_PRF_DERIVE */ |
| ikeV1AppB, /* CKM_NSS_IKE1_PRF_APP_B_DERIVE base mode */ |
| ikeV1AppBQuick, /* CKM_NSS_IKE1_PRF_APP_B_DERIVE quick mode */ |
| ikePlus /* CKM_NSS_IKE_PRF_DERIVE */ |
| }; |
| |
| typedef struct IkeTestVectorStr { |
| uint32_t id; |
| IkeTestType test_type; |
| std::string ikm; |
| std::string gxykm; |
| std::string prevkm; |
| std::string okm; |
| std::string Ni; |
| std::string Nr; |
| std::string seed_data; |
| uint8_t key_number; |
| uint32_t size; |
| bool valid; |
| } IkeTestVector; |
| |
| typedef struct RsaSignatureTestVectorStr { |
| SECOidTag hash_oid; |
| uint32_t id; |
| std::vector<uint8_t> sig; |
| std::vector<uint8_t> public_key; |
| std::vector<uint8_t> msg; |
| bool valid; |
| } RsaSignatureTestVector; |
| |
| typedef struct RsaDecryptTestVectorStr { |
| uint32_t id; |
| std::vector<uint8_t> msg; |
| std::vector<uint8_t> ct; |
| std::vector<uint8_t> priv_key; |
| bool valid; |
| } RsaDecryptTestVector; |
| |
| typedef struct RsaOaepTestVectorStr { |
| SECOidTag hash_oid; |
| CK_RSA_PKCS_MGF_TYPE mgf_hash; |
| uint32_t id; |
| std::vector<uint8_t> msg; |
| std::vector<uint8_t> ct; |
| std::vector<uint8_t> label; |
| std::vector<uint8_t> priv_key; |
| bool valid; |
| } RsaOaepTestVector; |
| |
| typedef struct RsaPssTestVectorStr { |
| SECOidTag hash_oid; |
| CK_RSA_PKCS_MGF_TYPE mgf_hash; |
| uint32_t id; |
| unsigned long sLen; |
| std::vector<uint8_t> sig; |
| std::vector<uint8_t> public_key; |
| std::vector<uint8_t> msg; |
| bool valid; |
| } RsaPssTestVector; |
| |
| #endif // test_structs_h__ |