56 unsigned char mdval[EVP_MAX_MD_SIZE];
57 EVP_DigestFinal_ex(mdctx, mdval, 0);
58 EVP_MD_CTX_destroy(mdctx);
67 return (EVP_get_digestbyname(dgst) != 0);
71 int XrdCryptosslMsgDigest::Init(
const char *dgst)
85 if (!(md = EVP_get_digestbyname(
Type()))) {
86 PRINT(
"EROOR: cannot get msg digest by name");
91 mdctx = EVP_MD_CTX_create();
92 if (!EVP_DigestInit_ex(mdctx, md, NULL)) {
93 PRINT(
"ERROR: cannot initialize digest");
94 EVP_MD_CTX_destroy(mdctx);
110 unsigned char mdval[EVP_MAX_MD_SIZE];
111 EVP_DigestFinal_ex(mdctx, mdval, 0);
113 EVP_MD_CTX_destroy(mdctx);
117 if (!valid)
return -1;
130 EVP_DigestUpdate(mdctx, (
char *)b, l);
142 EPNAME(
"MsgDigest::Final");
145 unsigned char mdval[EVP_MAX_MD_SIZE] = {0};
146 unsigned int mdlen = 0;
150 if (EVP_DigestFinal_ex(mdctx, mdval, &mdlen) == 1) {
154 DEBUG(
"result length is "<<mdlen <<
158 PRINT(
"ERROR: problems finalizing digest");
virtual int SetBuffer(int l, const char *b)
virtual char * Type() const
virtual int SetType(const char *t)
static bool IsSupported(const char *dgst)
int Reset(const char *dgst=0)
virtual ~XrdCryptosslMsgDigest()
XrdCryptosslMsgDigest(const char *dgst)
int Update(const char *b, int l)