13 #define GetDigest(obj, ctx) do { \
14 Data_Get_Struct((obj), EVP_MD_CTX, (ctx)); \
16 ossl_raise(rb_eRuntimeError, "Digest CTX wasn't initialized!"); \
19 #define SafeGetDigest(obj, ctx) do { \
20 OSSL_Check_Kind((obj), cDigest); \
21 GetDigest((obj), (ctx)); \
39 ASN1_OBJECT *oid =
NULL;
44 md = EVP_get_digestbyname(name);
46 oid = OBJ_txt2obj(name, 0);
47 md = EVP_get_digestbyobj(oid);
48 ASN1_OBJECT_free(oid);
57 md = EVP_MD_CTX_md(ctx);
138 EVP_MD_CTX *ctx1, *ctx2;
141 if (
self == other)
return self;
146 if (!EVP_MD_CTX_copy(ctx1, ctx2)) {
267 return INT2NUM(EVP_MD_CTX_size(ctx));
290 return INT2NUM(EVP_MD_CTX_block_size(ctx));