blob: 2d3d981639ef896c90279626bcff4ecb29f91e87 [file] [log] [blame]
/* 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__