return true;
}
-bool digest_open_by_nid(digest_t *digest, int nid, size_t maclength) {
+bool digest_open_by_nid(digest_t *digest, nid_t nid, size_t maclength) {
const EVP_MD *evp_md = EVP_get_digestbynid(nid);
if(!evp_md) {
bool digest_create(digest_t *digest, const void *indata, size_t inlen, void *outdata) {
size_t len = EVP_MD_size(digest->digest);
- unsigned char tmpdata[len];
+ unsigned char *tmpdata = alloca(len);
if(digest->hmac_ctx) {
bool ok;
ok = mac_ctx
&& EVP_MAC_update(mac_ctx, indata, inlen)
- && EVP_MAC_final(mac_ctx, tmpdata, NULL, sizeof(tmpdata));
+ && EVP_MAC_final(mac_ctx, tmpdata, NULL, len);
EVP_MAC_CTX_free(mac_ctx);
#endif
bool digest_verify(digest_t *digest, const void *indata, size_t inlen, const void *cmpdata) {
size_t len = digest->maclength;
- unsigned char outdata[len];
+ unsigned char *outdata = alloca(len);
return digest_create(digest, indata, inlen, outdata) && !memcmp(cmpdata, outdata, digest->maclength);
}
-int digest_get_nid(const digest_t *digest) {
+nid_t digest_get_nid(const digest_t *digest) {
if(!digest || !digest->digest) {
return 0;
}