C_OpenSSL

Usage

use Crypto.C_OpenSSL;

or

import Crypto.C_OpenSSL;

Support for low-level native OpenSSL bindings in C. This submodule wraps the C_OpenSSL implementation, providing access to most of the C_OpenSSL calls.

Refer to the C_OpenSSL documentation of the reference version for the usage of this module.

type EVP_PKEY_CTX
type EVP_PKEY
var EVP_PKEY_RSA: c_int
type EVP_PKEY_CTX_PTR = c_ptr(EVP_PKEY_CTX)
type EVP_PKEY_PTR = c_ptr(EVP_PKEY)
type CONST_EVP_MD_PTR
type CONST_EVP_CIPHER_PTR
type EVP_MD
type EVP_MD_CTX
type CHPL_EVP_MD_CTX
type ENGINE
type EVP_MD_PTR = c_ptr(EVP_MD)
type EVP_MD_CTX_PTR = c_ptr(EVP_MD_CTX)
type ENGINE_PTR = c_ptr(ENGINE)
type EVP_CIPHER
type EVP_CIPHER_CTX
type CHPL_EVP_CIPHER_CTX
type EVP_CIPHER_PTR = c_ptr(EVP_CIPHER)
type EVP_CIPHER_CTX_PTR = c_ptr(EVP_CIPHER_CTX)
proc EVP_CIPHER_iv_length(e: CONST_EVP_CIPHER_PTR): c_int
proc EVP_PKEY_size(pkey: EVP_PKEY_PTR): c_int
proc EVP_PKEY_CTX_new_id(id: c_int, e: ENGINE_PTR): EVP_PKEY_CTX_PTR
proc EVP_PKEY_keygen_init(ctx: EVP_PKEY_CTX_PTR): c_int
proc EVP_PKEY_CTX_set_rsa_keygen_bits(ctx: EVP_PKEY_CTX_PTR, mbits: c_int): c_int
proc EVP_PKEY_keygen(ctx: EVP_PKEY_CTX_PTR, ref ppkey: EVP_PKEY_PTR): c_int
proc EVP_PKEY_CTX_free(ctx: EVP_PKEY_CTX_PTR)
proc EVP_SealInit(ref ctx: EVP_CIPHER_CTX, types: CONST_EVP_CIPHER_PTR, ek: c_ptr(c_ptr(c_uchar)), ekl: c_ptr(c_int), iv: c_ptr(c_uchar), pubk: c_ptr(EVP_PKEY_PTR), npubk: c_int): c_int
proc EVP_SealUpdate(ref ctx: EVP_CIPHER_CTX, outm: c_ptr(c_uchar), outl: c_ptr(c_int), inp: c_ptr(c_uchar), inl: c_int): c_int
proc EVP_SealFinal(ref ctx: EVP_CIPHER_CTX, outm: c_ptr(c_uchar), outl: c_ptr(c_int)): c_int
proc EVP_OpenInit(ref ctx: EVP_CIPHER_CTX, types: CONST_EVP_CIPHER_PTR, ek: c_ptr(c_uchar), ekl: c_int, iv: c_ptr(c_uchar), priv: EVP_PKEY_PTR): c_int
proc EVP_OpenUpdate(ref ctx: EVP_CIPHER_CTX, outm: c_ptr(c_uchar), outl: c_ptr(c_int), inp: c_ptr(c_uchar), inl: c_int): c_int
proc EVP_OpenFinal(ref ctx: EVP_CIPHER_CTX, outm: c_ptr(c_uchar), outl: c_ptr(c_int)): c_int
proc CHPL_OpenSSL_add_all_digests()
proc EVP_get_digestbyname(name: c_ptrConst(c_char)): CONST_EVP_MD_PTR
proc CHPL_EVP_MD_CTX_new(): CHPL_EVP_MD_CTX
proc CHPL_EVP_MD_CTX_free(ref c: CHPL_EVP_MD_CTX)
proc CHPL_EVP_MD_CTX_ptr(ref c: CHPL_EVP_MD_CTX): EVP_MD_CTX_PTR
proc EVP_DigestInit_ex(ctx: EVP_MD_CTX_PTR, types: CONST_EVP_MD_PTR, impl: ENGINE_PTR): c_int
proc EVP_DigestUpdate(ctx: EVP_MD_CTX_PTR, const d: c_ptr(void), cnt: c_size_t): c_int
proc EVP_DigestFinal_ex(ctx: EVP_MD_CTX_PTR, md: c_ptr(c_uchar), ref s: c_uint): c_int
proc RAND_bytes(buf: c_ptr(c_uchar), num: c_int): c_int
proc EVP_sha256(): CONST_EVP_MD_PTR
proc PKCS5_PBKDF2_HMAC(pass: c_ptrConst(c_char), passlen: c_int, const salt: c_ptr(c_uchar), saltlen: c_int, iterCount: c_int, digest: CONST_EVP_MD_PTR, keylen: c_int, outx: c_ptr(c_uchar)): c_int
proc CHPL_EVP_CIPHER_CTX_new(): CHPL_EVP_CIPHER_CTX
proc CHPL_EVP_CIPHER_CTX_free(ref c: CHPL_EVP_CIPHER_CTX)
proc CHPL_EVP_CIPHER_CTX_ptr(ref c: CHPL_EVP_CIPHER_CTX): EVP_CIPHER_CTX_PTR
proc EVP_EncryptInit_ex(ctx: EVP_CIPHER_CTX_PTR, cipher: CONST_EVP_CIPHER_PTR, impl: ENGINE_PTR, const key: c_ptr(c_uchar), const iv: c_ptr(c_uchar)): c_int
proc EVP_EncryptUpdate(ctx: EVP_CIPHER_CTX_PTR, outm: c_ptr(c_uchar), outl: c_ptr(c_int), const ins: c_ptr(c_uchar), inl: c_int): c_int
proc EVP_EncryptFinal_ex(ctx: EVP_CIPHER_CTX_PTR, outm: c_ptr(c_uchar), outl: c_ptr(c_int)): c_int
proc EVP_DecryptInit_ex(ctx: EVP_CIPHER_CTX_PTR, cipher: CONST_EVP_CIPHER_PTR, impl: ENGINE_PTR, const key: c_ptr(c_uchar), const iv: c_ptr(c_uchar)): c_int
proc EVP_DecryptUpdate(ctx: EVP_CIPHER_CTX_PTR, outm: c_ptr(c_uchar), outl: c_ptr(c_int), const ins: c_ptr(c_uchar), inl: c_int): c_int
proc EVP_DecryptFinal_ex(ctx: EVP_CIPHER_CTX_PTR, outm: c_ptr(c_uchar), outl: c_ptr(c_int)): c_int
proc EVP_aes_128_cbc(): CONST_EVP_CIPHER_PTR
proc EVP_aes_128_ecb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_128_cfb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_128_ofb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_192_cbc(): CONST_EVP_CIPHER_PTR
proc EVP_aes_192_ecb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_192_cfb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_192_ofb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_256_cbc(): CONST_EVP_CIPHER_PTR
proc EVP_aes_256_ecb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_256_cfb(): CONST_EVP_CIPHER_PTR
proc EVP_aes_256_ofb(): CONST_EVP_CIPHER_PTR
proc EVP_bf_cbc(): CONST_EVP_CIPHER_PTR
proc EVP_bf_ecb(): CONST_EVP_CIPHER_PTR
proc EVP_bf_cfb(): CONST_EVP_CIPHER_PTR
proc EVP_bf_ofb(): CONST_EVP_CIPHER_PTR
proc RAND_seed(const buf: c_ptr(void), num: c_int)