wrapper: Add more evp functions.
Этот коммит содержится в:
родитель
2e81dd61dd
Коммит
15e31eb464
@ -38,6 +38,9 @@ typedef SHA_CTX* SHACTX;
|
|||||||
typedef SHA256_CTX* SHA256CTX;
|
typedef SHA256_CTX* SHA256CTX;
|
||||||
typedef MD5_CTX* MD5CTX;
|
typedef MD5_CTX* MD5CTX;
|
||||||
typedef HMAC_CTX* HMACCTX;
|
typedef HMAC_CTX* HMACCTX;
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
typedef EVP_MD_CTX *EVPCTX;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SHA_DIGEST_LEN SHA_DIGEST_LENGTH
|
#define SHA_DIGEST_LEN SHA_DIGEST_LENGTH
|
||||||
#ifdef MD5_DIGEST_LEN
|
#ifdef MD5_DIGEST_LEN
|
||||||
|
@ -53,6 +53,9 @@ void sha1(unsigned char *digest,int len,unsigned char *hash);
|
|||||||
void sha256(unsigned char *digest, int len, unsigned char *hash);
|
void sha256(unsigned char *digest, int len, unsigned char *hash);
|
||||||
|
|
||||||
void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen);
|
void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned int *hlen);
|
||||||
|
EVPCTX evp_init(int nid);
|
||||||
|
void evp_update(EVPCTX ctx, const void *data, unsigned long len);
|
||||||
|
void evp_final(EVPCTX ctx, unsigned char *md, unsigned int *mdlen);
|
||||||
|
|
||||||
ssh_mac_ctx ssh_mac_ctx_init(enum ssh_mac_e type);
|
ssh_mac_ctx ssh_mac_ctx_init(enum ssh_mac_e type);
|
||||||
void ssh_mac_update(ssh_mac_ctx ctx, const void *data, unsigned long len);
|
void ssh_mac_update(ssh_mac_ctx ctx, const void *data, unsigned long len);
|
||||||
|
@ -123,6 +123,30 @@ void evp(int nid, unsigned char *digest, int len, unsigned char *hash, unsigned
|
|||||||
EVP_DigestUpdate(&md, digest, len);
|
EVP_DigestUpdate(&md, digest, len);
|
||||||
EVP_DigestFinal(&md, hash, hlen);
|
EVP_DigestFinal(&md, hash, hlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EVPCTX evp_init(int nid)
|
||||||
|
{
|
||||||
|
const EVP_MD *evp_md = nid_to_evpmd(nid);
|
||||||
|
|
||||||
|
EVPCTX ctx = malloc(sizeof(EVP_MD_CTX));
|
||||||
|
if (ctx == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EVP_DigestInit(ctx, evp_md);
|
||||||
|
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
void evp_update(EVPCTX ctx, const void *data, unsigned long len)
|
||||||
|
{
|
||||||
|
EVP_DigestUpdate(ctx, data, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
void evp_final(EVPCTX ctx, unsigned char *md, unsigned int *mdlen)
|
||||||
|
{
|
||||||
|
EVP_DigestFinal(ctx, md, mdlen);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SHA256CTX sha256_init(void){
|
SHA256CTX sha256_init(void){
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user