Skip to content

Commit

Permalink
Merge d1ac928 into 1937f41
Browse files Browse the repository at this point in the history
  • Loading branch information
karel-m committed Jan 22, 2020
2 parents 1937f41 + d1ac928 commit 00d0eaf
Show file tree
Hide file tree
Showing 29 changed files with 838 additions and 374 deletions.
32 changes: 32 additions & 0 deletions libtomcrypt_VS2008.vcproj
Expand Up @@ -2434,6 +2434,22 @@
RelativePath="src\pk\ecc\ecc_sign_hash.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_sign_hash_eth27.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_sign_hash_internal.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_sign_hash_rfc5656.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_sign_hash_rfc7518.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_sizes.c"
>
Expand All @@ -2446,6 +2462,22 @@
RelativePath="src\pk\ecc\ecc_verify_hash.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_verify_hash_eth27.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_verify_hash_internal.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_verify_hash_rfc5656.c"
>
</File>
<File
RelativePath="src\pk\ecc\ecc_verify_hash_rfc7518.c"
>
</File>
<File
RelativePath="src\pk\ecc\ltc_ecc_export_point.c"
>
Expand Down
9 changes: 6 additions & 3 deletions makefile.mingw
Expand Up @@ -187,9 +187,12 @@ src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_key.o src/pk/ecc/ecc_get_oid_str.o src/
src/pk/ecc/ecc_import.o src/pk/ecc/ecc_import_openssl.o src/pk/ecc/ecc_import_pkcs8.o \
src/pk/ecc/ecc_import_x509.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_recover_key.o \
src/pk/ecc/ecc_set_curve.o src/pk/ecc/ecc_set_curve_internal.o src/pk/ecc/ecc_set_key.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o \
src/pk/ecc/ecc_ssh_ecdsa_encode_name.o src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ltc_ecc_export_point.o \
src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sign_hash_eth27.o \
src/pk/ecc/ecc_sign_hash_internal.o src/pk/ecc/ecc_sign_hash_rfc5656.o \
src/pk/ecc/ecc_sign_hash_rfc7518.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_ssh_ecdsa_encode_name.o \
src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ecc_verify_hash_eth27.o src/pk/ecc/ecc_verify_hash_internal.o \
src/pk/ecc/ecc_verify_hash_rfc5656.o src/pk/ecc/ecc_verify_hash_rfc7518.o \
src/pk/ecc/ltc_ecc_export_point.o src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ltc_ecc_is_point_at_infinity.o src/pk/ecc/ltc_ecc_map.o src/pk/ecc/ltc_ecc_mul2add.o \
src/pk/ecc/ltc_ecc_mulmod.o src/pk/ecc/ltc_ecc_mulmod_timing.o src/pk/ecc/ltc_ecc_points.o \
src/pk/ecc/ltc_ecc_projective_add_point.o src/pk/ecc/ltc_ecc_projective_dbl_point.o \
Expand Down
9 changes: 6 additions & 3 deletions makefile.msvc
Expand Up @@ -180,9 +180,12 @@ src/pk/ecc/ecc_free.obj src/pk/ecc/ecc_get_key.obj src/pk/ecc/ecc_get_oid_str.ob
src/pk/ecc/ecc_import.obj src/pk/ecc/ecc_import_openssl.obj src/pk/ecc/ecc_import_pkcs8.obj \
src/pk/ecc/ecc_import_x509.obj src/pk/ecc/ecc_make_key.obj src/pk/ecc/ecc_recover_key.obj \
src/pk/ecc/ecc_set_curve.obj src/pk/ecc/ecc_set_curve_internal.obj src/pk/ecc/ecc_set_key.obj \
src/pk/ecc/ecc_shared_secret.obj src/pk/ecc/ecc_sign_hash.obj src/pk/ecc/ecc_sizes.obj \
src/pk/ecc/ecc_ssh_ecdsa_encode_name.obj src/pk/ecc/ecc_verify_hash.obj src/pk/ecc/ltc_ecc_export_point.obj \
src/pk/ecc/ltc_ecc_import_point.obj src/pk/ecc/ltc_ecc_is_point.obj \
src/pk/ecc/ecc_shared_secret.obj src/pk/ecc/ecc_sign_hash.obj src/pk/ecc/ecc_sign_hash_eth27.obj \
src/pk/ecc/ecc_sign_hash_internal.obj src/pk/ecc/ecc_sign_hash_rfc5656.obj \
src/pk/ecc/ecc_sign_hash_rfc7518.obj src/pk/ecc/ecc_sizes.obj src/pk/ecc/ecc_ssh_ecdsa_encode_name.obj \
src/pk/ecc/ecc_verify_hash.obj src/pk/ecc/ecc_verify_hash_eth27.obj src/pk/ecc/ecc_verify_hash_internal.obj \
src/pk/ecc/ecc_verify_hash_rfc5656.obj src/pk/ecc/ecc_verify_hash_rfc7518.obj \
src/pk/ecc/ltc_ecc_export_point.obj src/pk/ecc/ltc_ecc_import_point.obj src/pk/ecc/ltc_ecc_is_point.obj \
src/pk/ecc/ltc_ecc_is_point_at_infinity.obj src/pk/ecc/ltc_ecc_map.obj src/pk/ecc/ltc_ecc_mul2add.obj \
src/pk/ecc/ltc_ecc_mulmod.obj src/pk/ecc/ltc_ecc_mulmod_timing.obj src/pk/ecc/ltc_ecc_points.obj \
src/pk/ecc/ltc_ecc_projective_add_point.obj src/pk/ecc/ltc_ecc_projective_dbl_point.obj \
Expand Down
9 changes: 6 additions & 3 deletions makefile.unix
Expand Up @@ -197,9 +197,12 @@ src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_key.o src/pk/ecc/ecc_get_oid_str.o src/
src/pk/ecc/ecc_import.o src/pk/ecc/ecc_import_openssl.o src/pk/ecc/ecc_import_pkcs8.o \
src/pk/ecc/ecc_import_x509.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_recover_key.o \
src/pk/ecc/ecc_set_curve.o src/pk/ecc/ecc_set_curve_internal.o src/pk/ecc/ecc_set_key.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o \
src/pk/ecc/ecc_ssh_ecdsa_encode_name.o src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ltc_ecc_export_point.o \
src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sign_hash_eth27.o \
src/pk/ecc/ecc_sign_hash_internal.o src/pk/ecc/ecc_sign_hash_rfc5656.o \
src/pk/ecc/ecc_sign_hash_rfc7518.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_ssh_ecdsa_encode_name.o \
src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ecc_verify_hash_eth27.o src/pk/ecc/ecc_verify_hash_internal.o \
src/pk/ecc/ecc_verify_hash_rfc5656.o src/pk/ecc/ecc_verify_hash_rfc7518.o \
src/pk/ecc/ltc_ecc_export_point.o src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ltc_ecc_is_point_at_infinity.o src/pk/ecc/ltc_ecc_map.o src/pk/ecc/ltc_ecc_mul2add.o \
src/pk/ecc/ltc_ecc_mulmod.o src/pk/ecc/ltc_ecc_mulmod_timing.o src/pk/ecc/ltc_ecc_points.o \
src/pk/ecc/ltc_ecc_projective_add_point.o src/pk/ecc/ltc_ecc_projective_dbl_point.o \
Expand Down
9 changes: 6 additions & 3 deletions makefile_include.mk
Expand Up @@ -358,9 +358,12 @@ src/pk/ecc/ecc_free.o src/pk/ecc/ecc_get_key.o src/pk/ecc/ecc_get_oid_str.o src/
src/pk/ecc/ecc_import.o src/pk/ecc/ecc_import_openssl.o src/pk/ecc/ecc_import_pkcs8.o \
src/pk/ecc/ecc_import_x509.o src/pk/ecc/ecc_make_key.o src/pk/ecc/ecc_recover_key.o \
src/pk/ecc/ecc_set_curve.o src/pk/ecc/ecc_set_curve_internal.o src/pk/ecc/ecc_set_key.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sizes.o \
src/pk/ecc/ecc_ssh_ecdsa_encode_name.o src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ltc_ecc_export_point.o \
src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ecc_shared_secret.o src/pk/ecc/ecc_sign_hash.o src/pk/ecc/ecc_sign_hash_eth27.o \
src/pk/ecc/ecc_sign_hash_internal.o src/pk/ecc/ecc_sign_hash_rfc5656.o \
src/pk/ecc/ecc_sign_hash_rfc7518.o src/pk/ecc/ecc_sizes.o src/pk/ecc/ecc_ssh_ecdsa_encode_name.o \
src/pk/ecc/ecc_verify_hash.o src/pk/ecc/ecc_verify_hash_eth27.o src/pk/ecc/ecc_verify_hash_internal.o \
src/pk/ecc/ecc_verify_hash_rfc5656.o src/pk/ecc/ecc_verify_hash_rfc7518.o \
src/pk/ecc/ltc_ecc_export_point.o src/pk/ecc/ltc_ecc_import_point.o src/pk/ecc/ltc_ecc_is_point.o \
src/pk/ecc/ltc_ecc_is_point_at_infinity.o src/pk/ecc/ltc_ecc_map.o src/pk/ecc/ltc_ecc_mul2add.o \
src/pk/ecc/ltc_ecc_mulmod.o src/pk/ecc/ltc_ecc_mulmod_timing.o src/pk/ecc/ltc_ecc_points.o \
src/pk/ecc/ltc_ecc_projective_add_point.o src/pk/ecc/ltc_ecc_projective_dbl_point.o \
Expand Down
6 changes: 4 additions & 2 deletions src/headers/tomcrypt_custom.h
Expand Up @@ -586,9 +586,11 @@
#define LTC_PKCS_8
#endif

#ifdef LTC_PKCS_8
#if defined(LTC_PKCS_8) && defined(LTC_DER)
#define LTC_PADDING
#define LTC_PBES
#else
#undef LTC_PKCS_8
#endif

#if defined(LTC_PELICAN) && !defined(LTC_RIJNDAEL)
Expand All @@ -607,7 +609,7 @@
#error ASN.1 DER requires MPI functionality
#endif

#if (defined(LTC_MDSA) || defined(LTC_MRSA) || defined(LTC_MECC)) && !defined(LTC_DER)
#if (defined(LTC_MDSA) || defined(LTC_MRSA)) && !defined(LTC_DER)
#error PK requires ASN.1 DER functionality, make sure LTC_DER is enabled
#endif

Expand Down
58 changes: 43 additions & 15 deletions src/headers/tomcrypt_pk.h
Expand Up @@ -273,22 +273,27 @@ int ecc_make_key(prng_state *prng, int wprng, int keysize, ecc_key *key);
int ecc_make_key_ex(prng_state *prng, int wprng, ecc_key *key, const ltc_ecc_curve *cu);
void ecc_free(ecc_key *key);

#if defined(LTC_DER)
int ecc_export(unsigned char *out, unsigned long *outlen, int type, const ecc_key *key);
int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key);
int ecc_import_ex(const unsigned char *in, unsigned long inlen, ecc_key *key, const ltc_ecc_curve *cu);
#endif

int ecc_ansi_x963_export(const ecc_key *key, unsigned char *out, unsigned long *outlen);
int ecc_ansi_x963_import(const unsigned char *in, unsigned long inlen, ecc_key *key);
int ecc_ansi_x963_import_ex(const unsigned char *in, unsigned long inlen, ecc_key *key, const ltc_ecc_curve *cu);

#if defined(LTC_DER)
int ecc_export_openssl(unsigned char *out, unsigned long *outlen, int type, const ecc_key *key);
int ecc_import_openssl(const unsigned char *in, unsigned long inlen, ecc_key *key);
int ecc_import_pkcs8(const unsigned char *in, unsigned long inlen, const void *pwd, unsigned long pwdlen, ecc_key *key);
int ecc_import_x509(const unsigned char *in, unsigned long inlen, ecc_key *key);
#endif

int ecc_shared_secret(const ecc_key *private_key, const ecc_key *public_key,
unsigned char *out, unsigned long *outlen);

#if defined(LTC_DER)
int ecc_encrypt_key(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, int hash,
Expand All @@ -298,26 +303,49 @@ int ecc_decrypt_key(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
const ecc_key *key);

#define ecc_sign_hash_rfc7518(in_, inlen_, out_, outlen_, prng_, wprng_, key_) \
ecc_sign_hash_ex(in_, inlen_, out_, outlen_, prng_, wprng_, LTC_ECCSIG_RFC7518, NULL, key_)
int ecc_sign_hash(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, const ecc_key *key);
#endif

#define ecc_sign_hash(in_, inlen_, out_, outlen_, prng_, wprng_, key_) \
ecc_sign_hash_ex(in_, inlen_, out_, outlen_, prng_, wprng_, LTC_ECCSIG_ANSIX962, NULL, key_)
int ecc_sign_hash_rfc7518(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, const ecc_key *key);

#define ecc_verify_hash_rfc7518(sig_, siglen_, hash_, hashlen_, stat_, key_) \
ecc_verify_hash_ex(sig_, siglen_, hash_, hashlen_, LTC_ECCSIG_RFC7518, stat_, key_)
int ecc_sign_hash_rfc7518_ex(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng,
int *recid, const ecc_key *key);

#define ecc_verify_hash(sig_, siglen_, hash_, hashlen_, stat_, key_) \
ecc_verify_hash_ex(sig_, siglen_, hash_, hashlen_, LTC_ECCSIG_ANSIX962, stat_, key_)
#if defined(LTC_SSH)
int ecc_sign_hash_rfc5656(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, const ecc_key *key);
#endif

int ecc_sign_hash_ex(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, ecc_signature_type sigformat,
int *recid, const ecc_key *key);
int ecc_sign_hash_eth27(const unsigned char *in, unsigned long inlen,
unsigned char *out, unsigned long *outlen,
prng_state *prng, int wprng, const ecc_key *key);

#if defined(LTC_DER)
int ecc_verify_hash(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
int *stat, const ecc_key *key);
#endif

int ecc_verify_hash_rfc7518(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
int *stat, const ecc_key *key);

#if defined(LTC_SSH)
int ecc_verify_hash_rfc5656(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
int *stat, const ecc_key *key);
#endif

int ecc_verify_hash_ex(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
ecc_signature_type sigformat, int *stat, const ecc_key *key);
int ecc_verify_hash_eth27(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
int *stat, const ecc_key *key);

int ecc_recover_key(const unsigned char *sig, unsigned long siglen,
const unsigned char *hash, unsigned long hashlen,
Expand Down
15 changes: 14 additions & 1 deletion src/headers/tomcrypt_private.h
Expand Up @@ -43,6 +43,7 @@ typedef int (*fn_kdf_t)(const unsigned char *password, unsigned long password_le
int iteration_count, int hash_idx,
unsigned char *out, unsigned long *outlen);

#if defined(LTC_PBES)
typedef struct {
/* KDF */
fn_kdf_t kdf;
Expand All @@ -67,6 +68,7 @@ typedef struct
/* only used for RC2 */
unsigned long key_bits;
} pbes_arg;
#endif

/*
* Internal functions
Expand Down Expand Up @@ -210,10 +212,12 @@ void ocb3_int_xor_blocks(unsigned char *out, const unsigned char *block_a, const

void copy_or_zeromem(const unsigned char* src, unsigned char* dest, unsigned long len, int coz);

#if defined(LTC_PBES)
int pbes_decrypt(const pbes_arg *arg, unsigned char *dec_data, unsigned long *dec_size);

int pbes1_extract(const ltc_asn1_list *s, pbes_arg *res);
int pbes2_extract(const ltc_asn1_list *s, pbes_arg *res);
#endif


/* tomcrypt_pk.h */
Expand All @@ -225,6 +229,8 @@ int pk_get_oid(enum ltc_oid_id id, const char **st);
int pk_oid_str_to_num(const char *OID, unsigned long *oid, unsigned long *oidlen);
int pk_oid_num_to_str(const unsigned long *oid, unsigned long oidlen, char *OID, unsigned long *outlen);

int pk_oid_cmp_with_ulong(const char *o1, const unsigned long *o2, unsigned long o2size);

/* ---- DH Routines ---- */
#ifdef LTC_MRSA
int rsa_init(rsa_key *key);
Expand All @@ -245,6 +251,14 @@ int ecc_copy_curve(const ecc_key *srckey, ecc_key *key);
int ecc_set_curve_by_size(int size, ecc_key *key);
int ecc_import_subject_public_key_info(const unsigned char *in, unsigned long inlen, ecc_key *key);

int ecc_sign_hash_internal(const unsigned char *in, unsigned long inlen,
void *r, void *s, prng_state *prng, int wprng,
int *recid, const ecc_key *key);

int ecc_verify_hash_internal(void *r, void *s,
const unsigned char *hash, unsigned long hashlen,
int *stat, const ecc_key *key);

#ifdef LTC_SSH
int ecc_ssh_ecdsa_encode_name(char *buffer, unsigned long *buflen, const ecc_key *key);
#endif
Expand Down Expand Up @@ -392,7 +406,6 @@ int x509_decode_subject_public_key_info(const unsigned char *in, unsigned long i
unsigned int algorithm, void* public_key, unsigned long* public_key_len,
ltc_asn1_type parameters_type, ltc_asn1_list* parameters, unsigned long *parameters_len);

int pk_oid_cmp_with_ulong(const char *o1, const unsigned long *o2, unsigned long o2size);
int pk_oid_cmp_with_asn1(const char *o1, const ltc_asn1_list *o2);

#endif /* LTC_DER */
Expand Down
4 changes: 2 additions & 2 deletions src/pk/asn1/oid/pk_oid_cmp.c
Expand Up @@ -8,8 +8,6 @@
*/
#include "tomcrypt_private.h"

#ifdef LTC_DER

/*
Compare an OID string to an array of `unsigned long`.
@return CRYPT_OK if equal
Expand All @@ -34,6 +32,8 @@ int pk_oid_cmp_with_ulong(const char *o1, const unsigned long *o2, unsigned long
return CRYPT_OK;
}

#ifdef LTC_DER

/*
Compare an OID string to an OID element decoded from ASN.1.
@return CRYPT_OK if equal
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_decrypt_key.c
Expand Up @@ -14,7 +14,7 @@
ECC Crypto, Tom St Denis
*/

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

/**
Decrypt an ECC encrypted key
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_encrypt_key.c
Expand Up @@ -14,7 +14,7 @@
ECC Crypto, Tom St Denis
*/

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

/**
Encrypt a symmetric key with ECC
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_export.c
Expand Up @@ -14,7 +14,7 @@
ECC Crypto, Tom St Denis
*/

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

/**
Export an ECC key as a binary packet
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_export_openssl.c
Expand Up @@ -9,7 +9,7 @@

#include "tomcrypt_private.h"

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

/**
Export an ECC key as a binary packet
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_import.c
Expand Up @@ -14,7 +14,7 @@
ECC Crypto, Tom St Denis
*/

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

/**
Import an ECC key from a binary packet
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_import_openssl.c
Expand Up @@ -9,7 +9,7 @@

#include "tomcrypt_private.h"

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

static int _ecc_import_private_with_oid(const unsigned char *in, unsigned long inlen, ecc_key *key)
{
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_import_pkcs8.c
Expand Up @@ -9,7 +9,7 @@

#include "tomcrypt_private.h"

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

typedef struct {
ltc_asn1_type t;
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_import_x509.c
Expand Up @@ -8,7 +8,7 @@
*/
#include "tomcrypt_private.h"

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

static int _ecc_import_x509_with_oid(const unsigned char *in, unsigned long inlen, ecc_key *key)
{
Expand Down
2 changes: 1 addition & 1 deletion src/pk/ecc/ecc_recover_key.c
Expand Up @@ -9,7 +9,7 @@

#include "tomcrypt_private.h"

#ifdef LTC_MECC
#if defined(LTC_MECC) && defined(LTC_DER)

#ifdef LTC_ECC_SHAMIR

Expand Down

0 comments on commit 00d0eaf

Please sign in to comment.