static int ossltest_digests(ENGINE *e, const EVP_MD **digest, const int **nids, int nid) { int ok = 1; if (!digest) { /* We are returning a list of supported nids */ return ossltest_digest_nids(nids); } /* We are being asked for a specific digest */ switch (nid) { case NID_md5: *digest = digest_md5(); break; case NID_sha1: *digest = digest_sha1(); break; case NID_sha256: *digest = digest_sha256(); break; case NID_sha384: *digest = digest_sha384(); break; case NID_sha512: *digest = digest_sha512(); break; default: ok = 0; *digest = NULL; break; } return ok; }
int mix_dearmor(BUFFER *in, BUFFER *out) { BUFFER *line, *md; int tempbuf = 0; int err = 0; line = buf_new(); md = buf_new(); if (in == out) { tempbuf = 1; out = buf_new(); } do { err = buf_getline(in, line); if (err == -1) goto end; } while (!bufeq(line, begin_remailer)); do { /* skip lines before message digest */ if (buf_getline(in, md) == -1) break; } while (strlen(md->data) != 24); decode(in, out); err = buf_getline(in, line); if (err != 0 || !bufeq(line, end_remailer)) err = -1; else { digest_md5(out, line); encode(line, 0); if (!buf_eq(md, line)) err = -1; if (out->length != 20480) err = -1; } end: if (err == -1) errlog(NOTICE, "Malformatted message.\n"); if (tempbuf) { buf_move(in, out); buf_free(out); } buf_free(line); buf_free(md); return (err); }
int t1_ek(BUFFER *key, BUFFER *seed, int num) { buf_reset(key); buf_appendc(key, (byte) num); buf_cat(key, seed); digest_md5(key, key); encode(key, 0); #ifdef DEBUG fprintf(stderr, "passphrase=%s (%2X%2X%2X%2X %d)\n", key->data, seed->data[0], seed->data[1], seed->data[2], seed->data[3], num); #endif /* DEBUG */ return (0); }
static int ossltest_digest_nids(const int **nids) { static int digest_nids[6] = { 0, 0, 0, 0, 0, 0 }; static int pos = 0; static int init = 0; if (!init) { const EVP_MD *md; if ((md = digest_md5()) != NULL) digest_nids[pos++] = EVP_MD_type(md); if ((md = digest_sha1()) != NULL) digest_nids[pos++] = EVP_MD_type(md); if ((md = digest_sha256()) != NULL) digest_nids[pos++] = EVP_MD_type(md); if ((md = digest_sha384()) != NULL) digest_nids[pos++] = EVP_MD_type(md); if ((md = digest_sha512()) != NULL) digest_nids[pos++] = EVP_MD_type(md); digest_nids[pos] = 0; init = 1; } *nids = digest_nids; return pos; }