Lines Matching refs:p12
24 int PKCS12_mac_present(const PKCS12 *p12)
26 return p12->mac ? 1 : 0;
33 const PKCS12 *p12)
35 if (p12->mac) {
36 X509_SIG_get0(p12->mac->dinfo, pmacalg, pmac);
38 *psalt = p12->mac->salt;
40 *piter = p12->mac->iter;
76 static int pkcs12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
96 if (!PKCS7_type_is_data(p12->authsafes)) {
101 if (p12->authsafes->d.data == NULL) {
106 salt = p12->mac->salt->data;
107 saltlen = p12->mac->salt->length;
108 if (p12->mac->iter == NULL)
111 iter = ASN1_INTEGER_get(p12->mac->iter);
112 X509_SIG_get0(p12->mac->dinfo, &macalg, NULL);
116 md = md_fetch = EVP_MD_fetch(p12->authsafes->ctx.libctx, md_name,
117 p12->authsafes->ctx.propq);
150 p12->authsafes->ctx.libctx,
151 p12->authsafes->ctx.propq)) {
159 || !HMAC_Update(hmac, p12->authsafes->d.data->data,
160 p12->authsafes->d.data->length)
173 int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
176 return pkcs12_gen_mac(p12, pass, passlen, mac, maclen, NULL);
180 int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)
186 if (p12->mac == NULL) {
190 if (!pkcs12_gen_mac(p12, pass, passlen, mac, &maclen, NULL)) {
194 X509_SIG_get0(p12->mac->dinfo, NULL, &macoct);
204 int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen,
217 if (PKCS12_setup_mac(p12, iter, salt, saltlen, md_type) == PKCS12_ERROR) {
224 if (!pkcs12_gen_mac(p12, pass, passlen, mac, &maclen, NULL)) {
228 X509_SIG_getm(p12->mac->dinfo, NULL, &macoct);
237 int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen,
242 PKCS12_MAC_DATA_free(p12->mac);
243 p12->mac = NULL;
245 if ((p12->mac = PKCS12_MAC_DATA_new()) == NULL)
248 if ((p12->mac->iter = ASN1_INTEGER_new()) == NULL) {
252 if (!ASN1_INTEGER_set(p12->mac->iter, iter)) {
261 if ((p12->mac->salt->data = OPENSSL_malloc(saltlen)) == NULL) {
265 p12->mac->salt->length = saltlen;
267 if (RAND_bytes_ex(p12->authsafes->ctx.libctx, p12->mac->salt->data,
271 memcpy(p12->mac->salt->data, salt, saltlen);
273 X509_SIG_getm(p12->mac->dinfo, &macalg, NULL);