core/testing/crypto/ecc_testing.h (606 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
#ifndef ECC_TESTING_H_
#define ECC_TESTING_H_
#include <stddef.h>
#include <stdint.h>
#include "crypto/ecc.h"
/* Maximum lengths of DER-encoded ECDSA signatures.
* Sequence -> 2 bytes overhead (3 for ECC521)
* BIT STRING (r) -> 2 bytes overhead (3 if MSB is 1)
* BIT STRING (s) -> 2 bytes overhead (3 if MSB is 1) */
#define ECC_TESTING_ECC256_DSA_MAX_LENGTH 72
#define ECC_TESTING_ECC384_DSA_MAX_LENGTH 104
#define ECC_TESTING_ECC521_DSA_MAX_LENGTH 139
extern const uint8_t ECC_PRIVKEY[];
extern const uint8_t ECC_PRIVKEY_LE[];
extern const size_t ECC_PRIVKEY_LEN;
extern const uint8_t ECC_PUBKEY[];
extern const uint8_t ECC_PUBKEY_LE[];
extern const size_t ECC_PUBKEY_LEN;
extern const uint8_t ECC_PUBKEY_SHA1[];
extern const uint8_t ECC_PUBKEY_SHA256[];
extern const uint8_t ECC_PUBKEY_SHA384[];
extern const uint8_t ECC_PUBKEY_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY_POINT;
extern const char ECC_PUBKEY_PEM[];
extern const size_t ECC_PUBKEY_PEM_LEN;
extern const uint8_t ECC_PUBKEY_DER[];
extern const size_t ECC_PUBKEY_DER_LEN;
extern const char ECC_PRIVKEY_PEM[];
extern const size_t ECC_PRIVKEY_PEM_LEN;
extern const uint8_t ECC_PRIVKEY_DER[];
extern const size_t ECC_PRIVKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_SIGNATURE_TEST[];
extern const size_t ECC_SIG_TEST_LEN;
extern const struct ecc_ecdsa_signature ECC_SIGNATURE_TEST_STRUCT;
extern const uint8_t ECC_SIGNATURE_TEST_RAW[];
extern const size_t ECC_SIG_TEST_RAW_LEN;
extern const uint8_t ECC_SIGNATURE_TEST2[];
extern const size_t ECC_SIG_TEST2_LEN;
extern const struct ecc_ecdsa_signature ECC_SIGNATURE_TEST2_STRUCT;
extern const uint8_t ECC_SIGNATURE_TEST2_RAW[];
extern const size_t ECC_SIG_TEST2_RAW_LEN;
extern const uint8_t ECC_SIGNATURE_NOPE[];
extern const size_t ECC_SIG_NOPE_LEN;
extern const struct ecc_ecdsa_signature ECC_SIGNATURE_NOPE_STRUCT;
extern const uint8_t ECC_SIGNATURE_NOPE_RAW[];
extern const size_t ECC_SIG_NOPE_RAW_LEN;
extern const uint8_t ECC_SIGNATURE_BAD[];
extern const size_t ECC_SIG_BAD_LEN;
extern const struct ecc_ecdsa_signature ECC_SIGNATURE_BAD_STRUCT;
extern const uint8_t ECC_SIGNATURE_BAD_RAW[];
extern const size_t ECC_SIG_BAD_RAW_LEN;
extern const uint8_t ECC_DH_SECRET[];
extern const size_t ECC_DH_SECRET_LEN;
extern const uint8_t ECC_PRIVKEY_LEADING_ZERO[];
extern const uint8_t ECC_PRIVKEY_LEADING_ZERO_LE[];
extern const size_t ECC_PRIVKEY_LEADING_ZERO_LEN;
extern const uint8_t ECC_PUBKEY_LEADING_ZERO[];
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_LE[];
extern const size_t ECC_PUBKEY_LEADING_ZERO_LEN;
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_SHA1[];
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_SHA256[];
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_SHA384[];
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY_LEADING_ZERO_POINT;
extern const char ECC_PUBKEY_LEADING_ZERO_PEM[];
extern const size_t ECC_PUBKEY_LEADING_ZERO_PEM_LEN;
extern const uint8_t ECC_PUBKEY_LEADING_ZERO_DER[];
extern const size_t ECC_PUBKEY_LEADING_ZERO_DER_LEN;
extern const char ECC_PRIVKEY_LEADING_ZERO_PEM[];
extern const size_t ECC_PRIVKEY_LEADING_ZERO_PEM_LEN;
extern const uint8_t ECC_PRIVKEY_LEADING_ZERO_DER[];
extern const size_t ECC_PRIVKEY_LEADING_ZERO_DER_LEN;
extern const uint8_t ECC_DH_SECRET_LEADING_ZERO[];
extern const size_t ECC_DH_SECRET_LEADING_ZERO_LEN;
extern const uint8_t ECC_PRIVKEY2[];
extern const uint8_t ECC_PRIVKEY2_LE[];
extern const size_t ECC_PRIVKEY2_LEN;
extern const uint8_t ECC_PUBKEY2[];
extern const uint8_t ECC_PUBKEY2_LE[];
extern const size_t ECC_PUBKEY2_LEN;
extern const uint8_t ECC_PUBKEY2_SHA1[];
extern const uint8_t ECC_PUBKEY2_SHA256[];
extern const uint8_t ECC_PUBKEY2_SHA384[];
extern const uint8_t ECC_PUBKEY2_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY2_POINT;
extern const char ECC_PUBKEY2_PEM[];
extern const size_t ECC_PUBKEY2_PEM_LEN;
extern const uint8_t ECC_PUBKEY2_DER[];
extern const size_t ECC_PUBKEY2_DER_LEN;
extern const char ECC_PRIVKEY2_PEM[];
extern const size_t ECC_PRIVKEY2_PEM_LEN;
extern const uint8_t ECC_PRIVKEY2_DER[];
extern const size_t ECC_PRIVKEY2_DER_LEN;
extern const uint8_t ECC_PRIVKEY2_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY2_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY2_ZERO_PAD_DER[];
extern const size_t ECC_PRIVKEY2_ZERO_PAD_DER_LEN;
extern const uint8_t ECC_PRIVKEY3[];
extern const uint8_t ECC_PRIVKEY3_LE[];
extern const size_t ECC_PRIVKEY3_LEN;
extern const uint8_t ECC_PUBKEY3[];
extern const uint8_t ECC_PUBKEY3_LE[];
extern const size_t ECC_PUBKEY3_LEN;
extern const uint8_t ECC_PUBKEY3_SHA1[];
extern const uint8_t ECC_PUBKEY3_SHA256[];
extern const uint8_t ECC_PUBKEY3_SHA384[];
extern const uint8_t ECC_PUBKEY3_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY3_POINT;
extern const char ECC_PUBKEY3_PEM[];
extern const size_t ECC_PUBKEY3_PEM_LEN;
extern const uint8_t ECC_PUBKEY3_DER[];
extern const size_t ECC_PUBKEY3_DER_LEN;
extern const char ECC_PRIVKEY3_PEM[];
extern const size_t ECC_PRIVKEY3_PEM_LEN;
extern const uint8_t ECC_PRIVKEY3_DER[];
extern const size_t ECC_PRIVKEY3_DER_LEN;
extern const uint8_t ECC_PRIVKEY3_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY3_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY4[];
extern const uint8_t ECC_PRIVKEY4_LE[];
extern const size_t ECC_PRIVKEY4_LEN;
extern const uint8_t ECC_PUBKEY4[];
extern const uint8_t ECC_PUBKEY4_LE[];
extern const size_t ECC_PUBKEY4_LEN;
extern const uint8_t ECC_PUBKEY4_SHA1[];
extern const uint8_t ECC_PUBKEY4_SHA256[];
extern const uint8_t ECC_PUBKEY4_SHA384[];
extern const uint8_t ECC_PUBKEY4_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY4_POINT;
extern const char ECC_PUBKEY4_PEM[];
extern const size_t ECC_PUBKEY4_PEM_LEN;
extern const uint8_t ECC_PUBKEY4_DER[];
extern const size_t ECC_PUBKEY4_DER_LEN;
extern const char ECC_PRIVKEY4_PEM[];
extern const size_t ECC_PRIVKEY4_PEM_LEN;
extern const uint8_t ECC_PRIVKEY4_DER[];
extern const size_t ECC_PRIVKEY4_DER_LEN;
extern const uint8_t ECC_PRIVKEY4_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY4_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY5[];
extern const uint8_t ECC_PRIVKEY5_LE[];
extern const size_t ECC_PRIVKEY5_LEN;
extern const uint8_t ECC_PUBKEY5[];
extern const uint8_t ECC_PUBKEY5_LE[];
extern const size_t ECC_PUBKEY5_LEN;
extern const uint8_t ECC_PUBKEY5_SHA1[];
extern const uint8_t ECC_PUBKEY5_SHA256[];
extern const uint8_t ECC_PUBKEY5_SHA384[];
extern const uint8_t ECC_PUBKEY5_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY5_POINT;
extern const char ECC_PUBKEY5_PEM[];
extern const size_t ECC_PUBKEY5_PEM_LEN;
extern const uint8_t ECC_PUBKEY5_DER[];
extern const size_t ECC_PUBKEY5_DER_LEN;
extern const char ECC_PRIVKEY5_PEM[];
extern const size_t ECC_PRIVKEY5_PEM_LEN;
extern const uint8_t ECC_PRIVKEY5_DER[];
extern const size_t ECC_PRIVKEY5_DER_LEN;
extern const uint8_t ECC_PRIVKEY5_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY5_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY6[];
extern const uint8_t ECC_PRIVKEY6_LE[];
extern const size_t ECC_PRIVKEY6_LEN;
extern const uint8_t ECC_PUBKEY6[];
extern const uint8_t ECC_PUBKEY6_LE[];
extern const size_t ECC_PUBKEY6_LEN;
extern const uint8_t ECC_PUBKEY6_SHA1[];
extern const uint8_t ECC_PUBKEY6_SHA256[];
extern const uint8_t ECC_PUBKEY6_SHA384[];
extern const uint8_t ECC_PUBKEY6_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY6_POINT;
extern const char ECC_PUBKEY6_PEM[];
extern const size_t ECC_PUBKEY6_PEM_LEN;
extern const uint8_t ECC_PUBKEY6_DER[];
extern const size_t ECC_PUBKEY6_DER_LEN;
extern const char ECC_PRIVKEY6_PEM[];
extern const size_t ECC_PRIVKEY6_PEM_LEN;
extern const uint8_t ECC_PRIVKEY6_DER[];
extern const size_t ECC_PRIVKEY6_DER_LEN;
extern const uint8_t ECC_PRIVKEY6_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY6_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY7[];
extern const uint8_t ECC_PRIVKEY7_LE[];
extern const size_t ECC_PRIVKEY7_LEN;
extern const uint8_t ECC_PUBKEY7[];
extern const uint8_t ECC_PUBKEY7_LE[];
extern const size_t ECC_PUBKEY7_LEN;
extern const uint8_t ECC_PUBKEY7_SHA1[];
extern const uint8_t ECC_PUBKEY7_SHA256[];
extern const uint8_t ECC_PUBKEY7_SHA384[];
extern const uint8_t ECC_PUBKEY7_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY7_POINT;
extern const char ECC_PUBKEY7_PEM[];
extern const size_t ECC_PUBKEY7_PEM_LEN;
extern const uint8_t ECC_PUBKEY7_DER[];
extern const size_t ECC_PUBKEY7_DER_LEN;
extern const char ECC_PRIVKEY7_PEM[];
extern const size_t ECC_PRIVKEY7_PEM_LEN;
extern const uint8_t ECC_PRIVKEY7_DER[];
extern const size_t ECC_PRIVKEY7_DER_LEN;
extern const uint8_t ECC_PRIVKEY7_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY7_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY8[];
extern const uint8_t ECC_PRIVKEY8_LE[];
extern const size_t ECC_PRIVKEY8_LEN;
extern const uint8_t ECC_PUBKEY8[];
extern const uint8_t ECC_PUBKEY8_LE[];
extern const size_t ECC_PUBKEY8_LEN;
extern const uint8_t ECC_PUBKEY8_SHA1[];
extern const uint8_t ECC_PUBKEY8_SHA256[];
extern const uint8_t ECC_PUBKEY8_SHA384[];
extern const uint8_t ECC_PUBKEY8_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY8_POINT;
extern const char ECC_PUBKEY8_PEM[];
extern const size_t ECC_PUBKEY8_PEM_LEN;
extern const uint8_t ECC_PUBKEY8_DER[];
extern const size_t ECC_PUBKEY8_DER_LEN;
extern const char ECC_PRIVKEY8_PEM[];
extern const size_t ECC_PRIVKEY8_PEM_LEN;
extern const uint8_t ECC_PRIVKEY8_DER[];
extern const size_t ECC_PRIVKEY8_DER_LEN;
extern const uint8_t ECC_PRIVKEY8_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY8_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY9[];
extern const uint8_t ECC_PRIVKEY9_LE[];
extern const size_t ECC_PRIVKEY9_LEN;
extern const uint8_t ECC_PUBKEY9[];
extern const uint8_t ECC_PUBKEY9_LE[];
extern const size_t ECC_PUBKEY9_LEN;
extern const uint8_t ECC_PUBKEY9_SHA1[];
extern const uint8_t ECC_PUBKEY9_SHA256[];
extern const uint8_t ECC_PUBKEY9_SHA384[];
extern const uint8_t ECC_PUBKEY9_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY9_POINT;
extern const char ECC_PUBKEY9_PEM[];
extern const size_t ECC_PUBKEY9_PEM_LEN;
extern const uint8_t ECC_PUBKEY9_DER[];
extern const size_t ECC_PUBKEY9_DER_LEN;
extern const char ECC_PRIVKEY9_PEM[];
extern const size_t ECC_PRIVKEY9_PEM_LEN;
extern const uint8_t ECC_PRIVKEY9_DER[];
extern const size_t ECC_PRIVKEY9_DER_LEN;
extern const uint8_t ECC_PRIVKEY9_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY9_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC_PRIVKEY10[];
extern const uint8_t ECC_PRIVKEY10_LE[];
extern const size_t ECC_PRIVKEY10_LEN;
extern const uint8_t ECC_PUBKEY10[];
extern const uint8_t ECC_PUBKEY10_LE[];
extern const size_t ECC_PUBKEY10_LEN;
extern const uint8_t ECC_PUBKEY10_SHA1[];
extern const uint8_t ECC_PUBKEY10_SHA256[];
extern const uint8_t ECC_PUBKEY10_SHA384[];
extern const uint8_t ECC_PUBKEY10_SHA512[];
extern const struct ecc_point_public_key ECC_PUBKEY10_POINT;
extern const char ECC_PUBKEY10_PEM[];
extern const size_t ECC_PUBKEY10_PEM_LEN;
extern const uint8_t ECC_PUBKEY10_DER[];
extern const size_t ECC_PUBKEY10_DER_LEN;
extern const char ECC_PRIVKEY10_PEM[];
extern const size_t ECC_PRIVKEY10_PEM_LEN;
extern const uint8_t ECC_PRIVKEY10_DER[];
extern const size_t ECC_PRIVKEY10_DER_LEN;
extern const uint8_t ECC_PRIVKEY10_NO_PUBKEY_DER[];
extern const size_t ECC_PRIVKEY10_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY[];
extern const uint8_t ECC384_PRIVKEY_LE[];
extern const size_t ECC384_PRIVKEY_LEN;
extern const uint8_t ECC384_PUBKEY[];
extern const uint8_t ECC384_PUBKEY_LE[];
extern const size_t ECC384_PUBKEY_LEN;
extern const uint8_t ECC384_PUBKEY_SHA1[];
extern const uint8_t ECC384_PUBKEY_SHA256[];
extern const uint8_t ECC384_PUBKEY_SHA384[];
extern const uint8_t ECC384_PUBKEY_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY_POINT;
#endif
extern const char ECC384_PUBKEY_PEM[];
extern const size_t ECC384_PUBKEY_PEM_LEN;
extern const uint8_t ECC384_PUBKEY_DER[];
extern const size_t ECC384_PUBKEY_DER_LEN;
extern const char ECC384_PRIVKEY_PEM[];
extern const size_t ECC384_PRIVKEY_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY_DER[];
extern const size_t ECC384_PRIVKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_SIGNATURE_TEST[];
extern const size_t ECC384_SIG_TEST_LEN;
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_ecdsa_signature ECC384_SIGNATURE_TEST_STRUCT;
#endif
extern const uint8_t ECC384_SIGNATURE_TEST_RAW[];
extern const size_t ECC384_SIG_TEST_RAW_LEN;
extern const uint8_t ECC384_SIGNATURE_TEST2[];
extern const size_t ECC384_SIG_TEST2_LEN;
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_ecdsa_signature ECC384_SIGNATURE_TEST2_STRUCT;
#endif
extern const uint8_t ECC384_SIGNATURE_TEST2_RAW[];
extern const size_t ECC384_SIG_TEST2_RAW_LEN;
extern const uint8_t ECC384_SIGNATURE_NOPE[];
extern const size_t ECC384_SIG_NOPE_LEN;
extern const uint8_t ECC384_SIGNATURE_BAD[];
extern const size_t ECC384_SIG_BAD_LEN;
extern const uint8_t ECC384_DH_SECRET[];
extern const size_t ECC384_DH_SECRET_LEN;
extern const uint8_t ECC384_PRIVKEY2[];
extern const uint8_t ECC384_PRIVKEY2_LE[];
extern const size_t ECC384_PRIVKEY2_LEN;
extern const uint8_t ECC384_PUBKEY2[];
extern const uint8_t ECC384_PUBKEY2_LE[];
extern const size_t ECC384_PUBKEY2_LEN;
extern const uint8_t ECC384_PUBKEY2_SHA1[];
extern const uint8_t ECC384_PUBKEY2_SHA256[];
extern const uint8_t ECC384_PUBKEY2_SHA384[];
extern const uint8_t ECC384_PUBKEY2_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY2_POINT;
#endif
extern const char ECC384_PUBKEY2_PEM[];
extern const size_t ECC384_PUBKEY2_PEM_LEN;
extern const uint8_t ECC384_PUBKEY2_DER[];
extern const size_t ECC384_PUBKEY2_DER_LEN;
extern const char ECC384_PRIVKEY2_PEM[];
extern const size_t ECC384_PRIVKEY2_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY2_DER[];
extern const size_t ECC384_PRIVKEY2_DER_LEN;
extern const uint8_t ECC384_PRIVKEY2_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY2_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY3[];
extern const uint8_t ECC384_PRIVKEY3_LE[];
extern const size_t ECC384_PRIVKEY3_LEN;
extern const uint8_t ECC384_PUBKEY3[];
extern const uint8_t ECC384_PUBKEY3_LE[];
extern const size_t ECC384_PUBKEY3_LEN;
extern const uint8_t ECC384_PUBKEY3_SHA1[];
extern const uint8_t ECC384_PUBKEY3_SHA256[];
extern const uint8_t ECC384_PUBKEY3_SHA384[];
extern const uint8_t ECC384_PUBKEY3_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY3_POINT;
#endif
extern const char ECC384_PUBKEY3_PEM[];
extern const size_t ECC384_PUBKEY3_PEM_LEN;
extern const uint8_t ECC384_PUBKEY3_DER[];
extern const size_t ECC384_PUBKEY3_DER_LEN;
extern const char ECC384_PRIVKEY3_PEM[];
extern const size_t ECC384_PRIVKEY3_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY3_DER[];
extern const size_t ECC384_PRIVKEY3_DER_LEN;
extern const uint8_t ECC384_PRIVKEY3_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY3_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY3_ZERO_PAD_DER[];
extern const size_t ECC384_PRIVKEY3_ZERO_PAD_DER_LEN;
extern const uint8_t ECC384_PRIVKEY4[];
extern const uint8_t ECC384_PRIVKEY4_LE[];
extern const size_t ECC384_PRIVKEY4_LEN;
extern const uint8_t ECC384_PUBKEY4[];
extern const uint8_t ECC384_PUBKEY4_LE[];
extern const size_t ECC384_PUBKEY4_LEN;
extern const uint8_t ECC384_PUBKEY4_SHA1[];
extern const uint8_t ECC384_PUBKEY4_SHA256[];
extern const uint8_t ECC384_PUBKEY4_SHA384[];
extern const uint8_t ECC384_PUBKEY4_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY4_POINT;
#endif
extern const char ECC384_PUBKEY4_PEM[];
extern const size_t ECC384_PUBKEY4_PEM_LEN;
extern const uint8_t ECC384_PUBKEY4_DER[];
extern const size_t ECC384_PUBKEY4_DER_LEN;
extern const char ECC384_PRIVKEY4_PEM[];
extern const size_t ECC384_PRIVKEY4_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY4_DER[];
extern const size_t ECC384_PRIVKEY4_DER_LEN;
extern const uint8_t ECC384_PRIVKEY4_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY4_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY5[];
extern const uint8_t ECC384_PRIVKEY5_LE[];
extern const size_t ECC384_PRIVKEY5_LEN;
extern const uint8_t ECC384_PUBKEY5[];
extern const uint8_t ECC384_PUBKEY5_LE[];
extern const size_t ECC384_PUBKEY5_LEN;
extern const uint8_t ECC384_PUBKEY5_SHA1[];
extern const uint8_t ECC384_PUBKEY5_SHA256[];
extern const uint8_t ECC384_PUBKEY5_SHA384[];
extern const uint8_t ECC384_PUBKEY5_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY5_POINT;
#endif
extern const char ECC384_PUBKEY5_PEM[];
extern const size_t ECC384_PUBKEY5_PEM_LEN;
extern const uint8_t ECC384_PUBKEY5_DER[];
extern const size_t ECC384_PUBKEY5_DER_LEN;
extern const char ECC384_PRIVKEY5_PEM[];
extern const size_t ECC384_PRIVKEY5_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY5_DER[];
extern const size_t ECC384_PRIVKEY5_DER_LEN;
extern const uint8_t ECC384_PRIVKEY5_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY5_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY6[];
extern const uint8_t ECC384_PRIVKEY6_LE[];
extern const size_t ECC384_PRIVKEY6_LEN;
extern const uint8_t ECC384_PUBKEY6[];
extern const uint8_t ECC384_PUBKEY6_LE[];
extern const size_t ECC384_PUBKEY6_LEN;
extern const uint8_t ECC384_PUBKEY6_SHA1[];
extern const uint8_t ECC384_PUBKEY6_SHA256[];
extern const uint8_t ECC384_PUBKEY6_SHA384[];
extern const uint8_t ECC384_PUBKEY6_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY6_POINT;
#endif
extern const char ECC384_PUBKEY6_PEM[];
extern const size_t ECC384_PUBKEY6_PEM_LEN;
extern const uint8_t ECC384_PUBKEY6_DER[];
extern const size_t ECC384_PUBKEY6_DER_LEN;
extern const char ECC384_PRIVKEY6_PEM[];
extern const size_t ECC384_PRIVKEY6_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY6_DER[];
extern const size_t ECC384_PRIVKEY6_DER_LEN;
extern const uint8_t ECC384_PRIVKEY6_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY6_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY7[];
extern const uint8_t ECC384_PRIVKEY7_LE[];
extern const size_t ECC384_PRIVKEY7_LEN;
extern const uint8_t ECC384_PUBKEY7[];
extern const uint8_t ECC384_PUBKEY7_LE[];
extern const size_t ECC384_PUBKEY7_LEN;
extern const uint8_t ECC384_PUBKEY7_SHA1[];
extern const uint8_t ECC384_PUBKEY7_SHA256[];
extern const uint8_t ECC384_PUBKEY7_SHA384[];
extern const uint8_t ECC384_PUBKEY7_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY7_POINT;
#endif
extern const char ECC384_PUBKEY7_PEM[];
extern const size_t ECC384_PUBKEY7_PEM_LEN;
extern const uint8_t ECC384_PUBKEY7_DER[];
extern const size_t ECC384_PUBKEY7_DER_LEN;
extern const char ECC384_PRIVKEY7_PEM[];
extern const size_t ECC384_PRIVKEY7_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY7_DER[];
extern const size_t ECC384_PRIVKEY7_DER_LEN;
extern const uint8_t ECC384_PRIVKEY7_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY7_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY8[];
extern const uint8_t ECC384_PRIVKEY8_LE[];
extern const size_t ECC384_PRIVKEY8_LEN;
extern const uint8_t ECC384_PUBKEY8[];
extern const uint8_t ECC384_PUBKEY8_LE[];
extern const size_t ECC384_PUBKEY8_LEN;
extern const uint8_t ECC384_PUBKEY8_SHA1[];
extern const uint8_t ECC384_PUBKEY8_SHA256[];
extern const uint8_t ECC384_PUBKEY8_SHA384[];
extern const uint8_t ECC384_PUBKEY8_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY8_POINT;
#endif
extern const char ECC384_PUBKEY8_PEM[];
extern const size_t ECC384_PUBKEY8_PEM_LEN;
extern const uint8_t ECC384_PUBKEY8_DER[];
extern const size_t ECC384_PUBKEY8_DER_LEN;
extern const char ECC384_PRIVKEY8_PEM[];
extern const size_t ECC384_PRIVKEY8_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY8_DER[];
extern const size_t ECC384_PRIVKEY8_DER_LEN;
extern const uint8_t ECC384_PRIVKEY8_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY8_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY9[];
extern const uint8_t ECC384_PRIVKEY9_LE[];
extern const size_t ECC384_PRIVKEY9_LEN;
extern const uint8_t ECC384_PUBKEY9[];
extern const uint8_t ECC384_PUBKEY9_LE[];
extern const size_t ECC384_PUBKEY9_LEN;
extern const uint8_t ECC384_PUBKEY9_SHA1[];
extern const uint8_t ECC384_PUBKEY9_SHA256[];
extern const uint8_t ECC384_PUBKEY9_SHA384[];
extern const uint8_t ECC384_PUBKEY9_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY9_POINT;
#endif
extern const char ECC384_PUBKEY9_PEM[];
extern const size_t ECC384_PUBKEY9_PEM_LEN;
extern const uint8_t ECC384_PUBKEY9_DER[];
extern const size_t ECC384_PUBKEY9_DER_LEN;
extern const char ECC384_PRIVKEY9_PEM[];
extern const size_t ECC384_PRIVKEY9_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY9_DER[];
extern const size_t ECC384_PRIVKEY9_DER_LEN;
extern const uint8_t ECC384_PRIVKEY9_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY9_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC384_PRIVKEY10[];
extern const uint8_t ECC384_PRIVKEY10_LE[];
extern const size_t ECC384_PRIVKEY10_LEN;
extern const uint8_t ECC384_PUBKEY10[];
extern const uint8_t ECC384_PUBKEY10_LE[];
extern const size_t ECC384_PUBKEY10_LEN;
extern const uint8_t ECC384_PUBKEY10_SHA1[];
extern const uint8_t ECC384_PUBKEY10_SHA256[];
extern const uint8_t ECC384_PUBKEY10_SHA384[];
extern const uint8_t ECC384_PUBKEY10_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_384
extern const struct ecc_point_public_key ECC384_PUBKEY10_POINT;
#endif
extern const char ECC384_PUBKEY10_PEM[];
extern const size_t ECC384_PUBKEY10_PEM_LEN;
extern const uint8_t ECC384_PUBKEY10_DER[];
extern const size_t ECC384_PUBKEY10_DER_LEN;
extern const char ECC384_PRIVKEY10_PEM[];
extern const size_t ECC384_PRIVKEY10_PEM_LEN;
extern const uint8_t ECC384_PRIVKEY10_DER[];
extern const size_t ECC384_PRIVKEY10_DER_LEN;
extern const uint8_t ECC384_PRIVKEY10_NO_PUBKEY_DER[];
extern const size_t ECC384_PRIVKEY10_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC521_PRIVKEY[];
extern const uint8_t ECC521_PRIVKEY_LE[];
extern const size_t ECC521_PRIVKEY_LEN;
extern const uint8_t ECC521_PUBKEY[];
extern const uint8_t ECC521_PUBKEY_LE[];
extern const size_t ECC521_PUBKEY_LEN;
extern const uint8_t ECC521_PUBKEY_SHA1[];
extern const uint8_t ECC521_PUBKEY_SHA256[];
extern const uint8_t ECC521_PUBKEY_SHA384[];
extern const uint8_t ECC521_PUBKEY_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_521
extern const struct ecc_point_public_key ECC521_PUBKEY_POINT;
#endif
extern const char ECC521_PUBKEY_PEM[];
extern const size_t ECC384_PUBKEY_PEM_LEN;
extern const uint8_t ECC521_PUBKEY_DER[];
extern const size_t ECC521_PUBKEY_DER_LEN;
extern const char ECC521_PRIVKEY_PEM[];
extern const size_t ECC521_PRIVKEY_PEM_LEN;
extern const uint8_t ECC521_PRIVKEY_DER[];
extern const size_t ECC521_PRIVKEY_DER_LEN;
extern const uint8_t ECC521_PRIVKEY_DER_NO_LEADING_ZERO[];
extern const size_t ECC521_PRIVKEY_DER_NO_LEADING_ZERO_LEN;
extern const uint8_t ECC521_PRIVKEY_NO_PUBKEY_DER[];
extern const size_t ECC521_PRIVKEY_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC521_SIGNATURE_TEST[];
extern const size_t ECC521_SIG_TEST_LEN;
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_521
extern const struct ecc_ecdsa_signature ECC521_SIGNATURE_TEST_STRUCT;
#endif
extern const uint8_t ECC521_SIGNATURE_TEST_RAW[];
extern const size_t ECC521_SIG_TEST_RAW_LEN;
extern const uint8_t ECC521_SIGNATURE_TEST2[];
extern const size_t ECC521_SIG_TEST2_LEN;
extern const uint8_t ECC521_SIGNATURE_NOPE[];
extern const size_t ECC521_SIG_NOPE_LEN;
extern const uint8_t ECC521_SIGNATURE_BAD[];
extern const size_t ECC521_SIG_BAD_LEN;
extern const uint8_t ECC521_DH_SECRET[];
extern const size_t ECC521_DH_SECRET_LEN;
extern const uint8_t ECC521_PRIVKEY2[];
extern const uint8_t ECC521_PRIVKEY2_LE[];
extern const size_t ECC521_PRIVKEY2_LEN;
extern const uint8_t ECC521_PUBKEY2[];
extern const uint8_t ECC521_PUBKEY2_LE[];
extern const size_t ECC521_PUBKEY2_LEN;
extern const uint8_t ECC521_PUBKEY2_SHA1[];
extern const uint8_t ECC521_PUBKEY2_SHA256[];
extern const uint8_t ECC521_PUBKEY2_SHA384[];
extern const uint8_t ECC521_PUBKEY2_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_521
extern const struct ecc_point_public_key ECC521_PUBKEY2_POINT;
#endif
extern const char ECC521_PUBKEY2_PEM[];
extern const size_t ECC384_PUBKEY2_PEM_LEN;
extern const uint8_t ECC521_PUBKEY2_DER[];
extern const size_t ECC521_PUBKEY2_DER_LEN;
extern const char ECC521_PRIVKEY2_PEM[];
extern const size_t ECC521_PRIVKEY2_PEM_LEN;
extern const uint8_t ECC521_PRIVKEY2_DER[];
extern const size_t ECC521_PRIVKEY2_DER_LEN;
extern const uint8_t ECC521_PRIVKEY2_DER_NO_LEADING_ZERO[];
extern const size_t ECC521_PRIVKEY2_DER_NO_LEADING_ZERO_LEN;
extern const uint8_t ECC521_PRIVKEY2_NO_PUBKEY_DER[];
extern const size_t ECC521_PRIVKEY2_NO_PUBKEY_DER_LEN;
extern const uint8_t ECC521_PRIVKEY3[];
extern const uint8_t ECC521_PRIVKEY3_LE[];
extern const size_t ECC521_PRIVKEY3_LEN;
extern const uint8_t ECC521_PUBKEY3[];
extern const uint8_t ECC521_PUBKEY3_LE[];
extern const size_t ECC521_PUBKEY3_LEN;
extern const uint8_t ECC521_PUBKEY3_SHA1[];
extern const uint8_t ECC521_PUBKEY3_SHA256[];
extern const uint8_t ECC521_PUBKEY3_SHA384[];
extern const uint8_t ECC521_PUBKEY3_SHA512[];
#if ECC_MAX_KEY_LENGTH >= ECC_KEY_LENGTH_521
extern const struct ecc_point_public_key ECC521_PUBKEY3_POINT;
#endif
extern const char ECC521_PUBKEY3_PEM[];
extern const size_t ECC384_PUBKEY3_PEM_LEN;
extern const uint8_t ECC521_PUBKEY3_DER[];
extern const size_t ECC521_PUBKEY3_DER_LEN;
extern const char ECC521_PRIVKEY3_PEM[];
extern const size_t ECC521_PRIVKEY3_PEM_LEN;
extern const uint8_t ECC521_PRIVKEY3_DER[];
extern const size_t ECC521_PRIVKEY3_DER_LEN;
extern const uint8_t ECC521_PRIVKEY3_DER_NO_LEADING_ZERO[];
extern const size_t ECC521_PRIVKEY3_DER_NO_LEADING_ZERO_LEN;
extern const uint8_t ECC521_PRIVKEY3_NO_PUBKEY_DER[];
extern const size_t ECC521_PRIVKEY3_NO_PUBKEY_DER_LEN;
#endif /* ECC_TESTING_H_ */