diff options
author | Alex Stapleton <alexs@prol.etari.at> | 2014-02-02 21:06:06 +0000 |
---|---|---|
committer | Alex Stapleton <alexs@prol.etari.at> | 2014-02-02 22:38:26 +0000 |
commit | a006eb9457ecb6fcd9da21b0bd49bcfa090a7f52 (patch) | |
tree | 375d2928fa8bf52158acd00871e71d6b3f18044a | |
parent | b84b215af8e7669d50b7b63fb37e6854ba6f99db (diff) | |
download | cryptography-a006eb9457ecb6fcd9da21b0bd49bcfa090a7f52.tar.gz cryptography-a006eb9457ecb6fcd9da21b0bd49bcfa090a7f52.tar.bz2 cryptography-a006eb9457ecb6fcd9da21b0bd49bcfa090a7f52.zip |
OpenSSL BN math
Needed to fully populate e.g. backend RSA contexts from an
RSAPrivateKey.
-rw-r--r-- | cryptography/hazmat/bindings/openssl/bignum.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cryptography/hazmat/bindings/openssl/bignum.py b/cryptography/hazmat/bindings/openssl/bignum.py index 6545f329..e843099e 100644 --- a/cryptography/hazmat/bindings/openssl/bignum.py +++ b/cryptography/hazmat/bindings/openssl/bignum.py @@ -16,6 +16,7 @@ INCLUDES = """ """ TYPES = """ +typedef ... BN_CTX; typedef ... BIGNUM; /* * TODO: This typedef is wrong. @@ -41,7 +42,13 @@ FUNCTIONS = """ BIGNUM *BN_new(void); void BN_free(BIGNUM *); +BIGNUM *BN_copy(BIGNUM *, const BIGNUM *); +BIGNUM *BN_dup(const BIGNUM *); + int BN_set_word(BIGNUM *, BN_ULONG); +BN_ULONG BN_get_word(const BIGNUM *); + +const BIGNUM *BN_value_one(void); char *BN_bn2hex(const BIGNUM *); int BN_hex2bn(BIGNUM **, const char *); @@ -51,9 +58,31 @@ int BN_bn2bin(const BIGNUM *, unsigned char *); BIGNUM *BN_bin2bn(const unsigned char *, int, BIGNUM *); int BN_num_bits(const BIGNUM *); + +int BN_add(BIGNUM *, const BIGNUM *, const BIGNUM *); +int BN_sub(BIGNUM *, const BIGNUM *, const BIGNUM *); +int BN_mul(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_sqr(BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_div(BIGNUM *, BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_nnmod(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_mod_add(BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *); +int BN_mod_sub(BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *); +int BN_mod_mul(BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *); +int BN_mod_sqr(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_exp(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +int BN_mod_exp(BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *); +int BN_gcd(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); +BIGNUM *BN_mod_inverse(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); """ MACROS = """ +int BN_zero(BIGNUM *); +int BN_one(BIGNUM *); +int BN_mod(BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); """ CUSTOMIZATIONS = """ |