5 SSLeay_add_all_digests();
9 MODULE = SSLeay::MD PACKAGE = SSLeay::MD PREFIX = p5_EVP_MD_
14 # SSLeay::MD::new(name) name= md2, md5, sha, sha1, or mdc2
15 # md->name() - returns the name
16 # md->init() - reinitalises the digest
17 # md->update(data) - adds more data to digest
18 # digest=md->final() - returns digest
28 if ((items == 1) && SvPOK(ST(0)))
30 else if ((items == 2) && SvPOK(ST(1)))
33 croak("Usage: SSLeay::MD::new(type)");
34 PUSHs(sv_newmortal());
35 md=EVP_get_digestbyname(name);
38 ctx=malloc(sizeof(EVP_MD_CTX));
39 EVP_DigestInit(ctx,md);
40 sv_setref_pv(ST(0), "SSLeay::MD", (void*)ctx);
47 RETVAL.dptr=OBJ_nid2ln(EVP_MD_type(EVP_MD_CTX_type(ctx)));
48 RETVAL.dsize=strlen(RETVAL.dptr);
56 EVP_DigestInit(ctx,EVP_MD_CTX_type(ctx));
59 p5_EVP_MD_update(ctx, in)
63 EVP_DigestUpdate(ctx,in.dptr,in.dsize);
69 char md[EVP_MAX_MD_SIZE];
72 EVP_DigestFinal(ctx,md,&len);
79 p5_EVP_MD_DESTROY(ctx)