pylibressl.build¶
CFFI building options, cdefs and source.
To manually compile C module, run python3 pylibressl/build.py.
Module Contents¶
- pylibressl.build.TOPLEVEL_PACKAGE_PATH¶
- pylibressl.build.SOURCES = []¶
- pylibressl.build.LIBRARIES = ['crypto']¶
- pylibressl.build.LIBRARY_DIRS¶
- pylibressl.build.INCLUDE_DIRS¶
- pylibressl.build.EXTRA_COMPILE_ARGS = []¶
- pylibressl.build.EXTRA_LINK_ARGS = []¶
- pylibressl.build.cdef = Multiline-String¶
Show Value
1void OPENSSL_add_all_algorithms_noconf(void); 2typedef ... ENGINE; 3 4int CRYPTO_memcmp(const void *a, const void *b, size_t len); 5void OPENSSL_cleanse(void *ptr, size_t len); 6 7/////// BIO ///////// 8typedef ... BIO; 9typedef ... BIO_METHOD; 10 11BIO *BIO_new(BIO_METHOD *type); 12BIO_METHOD *BIO_s_mem(void); 13BIO *BIO_new_mem_buf(void *buf, int len); 14void BIO_free_all(BIO *a); 15 16int BIO_read(BIO *b, void *buf, int len); 17size_t BIO_ctrl_pending(BIO *b); 18///////////////////// 19 20/////// BIGNUM ///////// 21typedef ... BIGNUM; 22typedef unsigned long BN_ULONG; 23 24BIGNUM *BN_new(void); 25void BN_free(BIGNUM *a); 26 27int BN_set_word(BIGNUM *a, BN_ULONG w); 28//////////////////////// 29 30/////// Error handling ///////// 31void ERR_load_crypto_strings(void); 32char *ERR_error_string(unsigned long e, char *buf); 33unsigned long ERR_get_error(void); 34//////////////////////////////// 35 36/////// Digests ///////// 37typedef ... EVP_MD; 38typedef ... EVP_MD_CTX; 39#define EVP_MAX_MD_SIZE ... 40 41const EVP_MD* EVP_streebog512(void); 42const EVP_MD* EVP_sha512(void); 43const EVP_MD* EVP_sha256(void); 44 45EVP_MD_CTX *EVP_MD_CTX_create(void); 46int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); 47int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); 48int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 49void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); 50 51int EVP_MD_size(const EVP_MD *md); 52int EVP_MD_block_size(const EVP_MD *md); 53///////////////////////// 54 55/////// PBKDF2 ////////// 56int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, 57 const unsigned char *salt, int saltlen, int iter, int keylen, 58 unsigned char *out); 59int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned char *salt, 60 int saltlen, int iter, const EVP_MD *digest, int keylen, 61 unsigned char *out); 62///////////////////////// 63 64/////// Private/public keys ////////// 65typedef ... EVP_PKEY; 66typedef ... EVP_PKEY_CTX; 67#define EVP_PKEY_HMAC ... 68#define EVP_PKEY_RSA ... 69 70EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, 71 int keylen); 72EVP_PKEY *EVP_PKEY_new(void); 73void EVP_PKEY_free(EVP_PKEY*); 74////////////////////////////////////// 75 76/////// Signing ////////// 77int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 78 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 79int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen); 80int _wrap_EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size); 81 82int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 83 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 84int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, unsigned char *sig, size_t siglen); 85int _wrap_EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size); 86////////////////////////// 87 88/////// Symmetric ciphers ////////// 89typedef ... EVP_CIPHER; 90typedef ... EVP_CIPHER_CTX; 91 92#define EVP_CTRL_GCM_SET_TAG ... 93#define EVP_CTRL_GCM_GET_TAG ... 94#define EVP_CTRL_GCM_SET_IVLEN ... 95 96const EVP_CIPHER *EVP_aes_256_ctr(void); 97const EVP_CIPHER *EVP_aes_256_cbc(void); 98const EVP_CIPHER *EVP_aes_256_gcm(void); 99const EVP_CIPHER *EVP_gost2814789_cnt(void); 100 101int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); 102int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); 103int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); 104 105void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); 106EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); 107void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); 108int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); 109 110int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 111 ENGINE *impl, const unsigned char *key, const unsigned char *iv); 112int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 113 const unsigned char *in, int inl); 114int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 115 116int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 117 ENGINE *impl, const unsigned char *key, const unsigned char *iv); 118int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 119 const unsigned char *in, int inl); 120int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 121 122int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); 123//////////////////////////////////// 124 125/////// RSA ////////// 126typedef ... RSA; 127typedef ... pem_password_cb; 128typedef ... BN_GENCB; 129 130int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key); 131 132RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, 133 pem_password_cb *cb, void *u); 134RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, 135 pem_password_cb *cb, void *u); 136int PEM_write_bio_RSAPublicKey(BIO *bp, RSA *x); 137int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, 138 unsigned char *kstr, int klen, 139 pem_password_cb *cb, void *u); 140 141RSA *RSA_new(void); 142void RSA_free(RSA *r); 143int RSA_size(const RSA *rsa); 144 145int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 146////////////////////// 147 148/////// Asymmetric cipher ////////// 149int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 150 unsigned char **ek, int *ekl, unsigned char *iv, EVP_PKEY **pubk, 151 int npubk); 152int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 153int _wrap_EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 154 const unsigned char *in, int inl); 155 156int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 157 const unsigned char *ek, int ekl, const unsigned char *iv, EVP_PKEY *priv); 158int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 159int _wrap_EVP_OpenUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 160 const unsigned char *in, int inl); 161//////////////////////////////////// 162 163/////// Random number generation ////////// 164int RAND_bytes(unsigned char *buf, int num); 165///////////////////////////////////////////
- pylibressl.build.src = Multiline-String¶
Show Value
1#include <openssl/evp.h> 2#include <openssl/err.h> 3#include <openssl/crypto.h> 4#include <openssl/bio.h> 5#include <openssl/pem.h> 6#include <openssl/rand.h> 7 8extern int _wrap_EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size); 9int _wrap_EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size) 10{ 11 return EVP_DigestSignUpdate(ctx, msg, size); 12} 13 14extern int _wrap_EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size); 15int _wrap_EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void* msg, size_t size) 16{ 17 return EVP_DigestVerifyUpdate(ctx, msg, size); 18} 19 20extern int _wrap_EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 21 const unsigned char *in, int inl); 22int _wrap_EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 23 const unsigned char *in, int inl) 24{ 25 return EVP_SealUpdate(ctx, out, outl, in, inl); 26} 27 28extern int _wrap_EVP_OpenUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 29 const unsigned char *in, int inl); 30int _wrap_EVP_OpenUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 31 const unsigned char *in, int inl) 32{ 33 return EVP_OpenUpdate(ctx, out, outl, in, inl); 34}
- pylibressl.build.ffi¶