|
|
@ -69,7 +69,7 @@ |
|
|
|
#include "types.h" |
|
|
|
#include "errors.h" |
|
|
|
|
|
|
|
#ifdef HAVE_GSKSSL |
|
|
|
#if defined(HAVE_GSKSSL) && !defined(HAVE_OPENSSL) |
|
|
|
#include <gsktypes.h> |
|
|
|
#endif |
|
|
|
|
|
|
@ -392,18 +392,18 @@ typedef enum { |
|
|
|
* \see RFC4880 5.5.2 |
|
|
|
*/ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *p; /* DSA prime p */ |
|
|
|
gsk_buffer *q; /* DSA group order q */ |
|
|
|
gsk_buffer *g; /* DSA group generator g */ |
|
|
|
gsk_buffer *y; /* DSA public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *p; /* DSA prime p */ |
|
|
|
BIGNUM *q; /* DSA group order q */ |
|
|
|
BIGNUM *g; /* DSA group generator g */ |
|
|
|
BIGNUM *y; /* DSA public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *p; /* DSA prime p */ |
|
|
|
gsk_buffer *q; /* DSA group order q */ |
|
|
|
gsk_buffer *g; /* DSA group generator g */ |
|
|
|
gsk_buffer *y; /* DSA public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#endif |
|
|
|
} pgp_dsa_pubkey_t; |
|
|
|
|
|
|
@ -412,12 +412,12 @@ typedef struct { |
|
|
|
* \see RFC4880 5.5.2 |
|
|
|
*/ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *n; /* RSA public modulus n */ |
|
|
|
gsk_buffer *e; /* RSA public encryption exponent e */ |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *n; /* RSA public modulus n */ |
|
|
|
BIGNUM *e; /* RSA public encryption exponent e */ |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *n; /* RSA public modulus n */ |
|
|
|
gsk_buffer *e; /* RSA public encryption exponent e */ |
|
|
|
#endif |
|
|
|
} pgp_rsa_pubkey_t; |
|
|
|
|
|
|
@ -426,17 +426,16 @@ typedef struct { |
|
|
|
* \see RFC4880 5.5.2 |
|
|
|
*/ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *n; /* RSA public modulus n */ |
|
|
|
gsk_buffer *p; /* ElGamal prime p */ |
|
|
|
gsk_buffer *g; /* ElGamal group generator g */ |
|
|
|
gsk_buffer *y; /* ElGamal public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *p; /* ElGamal prime p */ |
|
|
|
BIGNUM *g; /* ElGamal group generator g */ |
|
|
|
BIGNUM *y; /* ElGamal public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *p; /* ElGamal prime p */ |
|
|
|
gsk_buffer *g; /* ElGamal group generator g */ |
|
|
|
gsk_buffer *y; /* ElGamal public key value y (= g^x mod p |
|
|
|
* with x being the secret) */ |
|
|
|
#endif |
|
|
|
} pgp_elgamal_pubkey_t; |
|
|
|
|
|
|
@ -445,10 +444,10 @@ typedef struct { |
|
|
|
* \see RFC8037 (page 9) |
|
|
|
*/ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *x; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#endif |
|
|
|
} pgp_ecdh_pubkey_t; |
|
|
|
|
|
|
@ -478,41 +477,41 @@ typedef struct { |
|
|
|
pgp_dsa_pubkey_t dsa; /* A DSA public key */ |
|
|
|
pgp_rsa_pubkey_t rsa; /* An RSA public key */ |
|
|
|
pgp_elgamal_pubkey_t elgamal; /* An ElGamal public key */ |
|
|
|
pgp_ecdh_pubkey_t ecdh; /* An ElGamal public key */ |
|
|
|
pgp_ecdh_pubkey_t ecdh; /* An ECDH public key */ |
|
|
|
} key; /* Public Key Parameters */ |
|
|
|
} pgp_pubkey_t; |
|
|
|
|
|
|
|
/** Structure to hold data for one RSA secret key |
|
|
|
*/ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *d; |
|
|
|
gsk_buffer *p; |
|
|
|
gsk_buffer *q; |
|
|
|
gsk_buffer *u; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *d; |
|
|
|
BIGNUM *p; |
|
|
|
BIGNUM *q; |
|
|
|
BIGNUM *u; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *d; |
|
|
|
gsk_buffer *p; |
|
|
|
gsk_buffer *q; |
|
|
|
gsk_buffer *u; |
|
|
|
#endif |
|
|
|
} pgp_rsa_seckey_t; |
|
|
|
|
|
|
|
/** pgp_dsa_seckey_t */ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *x; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#endif |
|
|
|
} pgp_dsa_seckey_t; |
|
|
|
|
|
|
|
/** pgp_elgamal_seckey_t */ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *x; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *x; |
|
|
|
#endif |
|
|
|
} pgp_elgamal_seckey_t; |
|
|
|
|
|
|
@ -520,12 +519,12 @@ typedef struct { |
|
|
|
* According to RFC8037 (page 9) |
|
|
|
* */ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *d; |
|
|
|
gsk_buffer *x; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *d; |
|
|
|
BIGNUM *x; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *d; |
|
|
|
gsk_buffer *x; |
|
|
|
#endif |
|
|
|
} pgp_ecdh_seckey_t; |
|
|
|
|
|
|
@ -721,41 +720,41 @@ typedef enum { |
|
|
|
|
|
|
|
/** Struct to hold params of an RSA signature */ |
|
|
|
typedef struct pgp_rsa_sig_t { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *sig; /* the signature value (m^d % n) */ |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *sig; /* the signature value (m^d % n) */ |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *sig; /* the signature value (m^d % n) */ |
|
|
|
#endif |
|
|
|
} pgp_rsa_sig_t; |
|
|
|
|
|
|
|
/** Struct to hold params of a DSA signature */ |
|
|
|
typedef struct pgp_dsa_sig_t { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *r; /* DSA value r */ |
|
|
|
gsk_buffer *s; /* DSA value s */ |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *r; /* DSA value r */ |
|
|
|
BIGNUM *s; /* DSA value s */ |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *r; /* DSA value r */ |
|
|
|
gsk_buffer *s; /* DSA value s */ |
|
|
|
#endif |
|
|
|
} pgp_dsa_sig_t; |
|
|
|
|
|
|
|
/** pgp_elgamal_signature_t */ |
|
|
|
typedef struct pgp_elgamal_sig_t { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *r; |
|
|
|
gsk_buffer *s; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *r; |
|
|
|
BIGNUM *s; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *r; |
|
|
|
gsk_buffer *s; |
|
|
|
#endif |
|
|
|
} pgp_elgamal_sig_t; |
|
|
|
|
|
|
|
/** pgp_ecdh_signature_t */ |
|
|
|
typedef struct pgp_ecdh_sig_t { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *s; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *s; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *s; |
|
|
|
#endif |
|
|
|
} pgp_ecdh_sig_t; |
|
|
|
|
|
|
@ -934,23 +933,23 @@ enum { |
|
|
|
|
|
|
|
/** pgp_pk_sesskey_params_rsa_t */ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *encrypted_m; |
|
|
|
gsk_buffer *m; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *encrypted_m; |
|
|
|
BIGNUM *m; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *encrypted_m; |
|
|
|
gsk_buffer *m; |
|
|
|
#endif |
|
|
|
} pgp_pk_sesskey_params_rsa_t; |
|
|
|
|
|
|
|
/** pgp_pk_sesskey_params_elgamal_t */ |
|
|
|
typedef struct { |
|
|
|
#if defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *g_to_k; |
|
|
|
gsk_buffer *encrypted_m; |
|
|
|
#elif defined(HAVE_OPENSSL) |
|
|
|
#if defined(HAVE_OPENSSL) |
|
|
|
BIGNUM *g_to_k; |
|
|
|
BIGNUM *encrypted_m; |
|
|
|
#elif defined(HAVE_GSKSSL) |
|
|
|
gsk_buffer *g_to_k; |
|
|
|
gsk_buffer *encrypted_m; |
|
|
|
#endif |
|
|
|
} pgp_pk_sesskey_params_elgamal_t; |
|
|
|
|
|
|
|