p12_mutl.c (59191) | p12_mutl.c (68651) |
---|---|
1/* p12_mutl.c */ 2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL 3 * project 1999. 4 */ 5/* ==================================================================== 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 92 unchanged lines hidden (view full) --- 101 PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_ABSENT); 102 return 0; 103 } 104 if (!PKCS12_gen_mac (p12, pass, passlen, mac, &maclen)) { 105 PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_GENERATION_ERROR); 106 return 0; 107 } 108 if ((maclen != (unsigned int)p12->mac->dinfo->digest->length) | 1/* p12_mutl.c */ 2/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL 3 * project 1999. 4 */ 5/* ==================================================================== 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 92 unchanged lines hidden (view full) --- 101 PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_ABSENT); 102 return 0; 103 } 104 if (!PKCS12_gen_mac (p12, pass, passlen, mac, &maclen)) { 105 PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_GENERATION_ERROR); 106 return 0; 107 } 108 if ((maclen != (unsigned int)p12->mac->dinfo->digest->length) |
109 || memcmp (mac, p12->mac->dinfo->digest->data, maclen)) { 110 PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_VERIFY_ERROR); 111 return 0; 112 } | 109 || memcmp (mac, p12->mac->dinfo->digest->data, maclen)) return 0; |
113 return 1; 114} 115 116/* Set a mac */ 117 118int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen, 119 unsigned char *salt, int saltlen, int iter, EVP_MD *md_type) 120{ --- 26 unchanged lines hidden (view full) --- 147 if(!(p12->mac->iter = M_ASN1_INTEGER_new())) { 148 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 149 return 0; 150 } 151 ASN1_INTEGER_set(p12->mac->iter, iter); 152 } 153 if (!saltlen) saltlen = PKCS12_SALT_LEN; 154 p12->mac->salt->length = saltlen; | 110 return 1; 111} 112 113/* Set a mac */ 114 115int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen, 116 unsigned char *salt, int saltlen, int iter, EVP_MD *md_type) 117{ --- 26 unchanged lines hidden (view full) --- 144 if(!(p12->mac->iter = M_ASN1_INTEGER_new())) { 145 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 146 return 0; 147 } 148 ASN1_INTEGER_set(p12->mac->iter, iter); 149 } 150 if (!saltlen) saltlen = PKCS12_SALT_LEN; 151 p12->mac->salt->length = saltlen; |
155 if (!(p12->mac->salt->data = Malloc (saltlen))) { | 152 if (!(p12->mac->salt->data = OPENSSL_malloc (saltlen))) { |
156 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 157 return 0; 158 } 159 if (!salt) { 160 if (RAND_pseudo_bytes (p12->mac->salt->data, saltlen) < 0) 161 return 0; 162 } 163 else memcpy (p12->mac->salt->data, salt, saltlen); 164 p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type)); 165 if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) { 166 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 167 return 0; 168 } 169 p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL; 170 171 return 1; 172} 173#endif | 153 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 154 return 0; 155 } 156 if (!salt) { 157 if (RAND_pseudo_bytes (p12->mac->salt->data, saltlen) < 0) 158 return 0; 159 } 160 else memcpy (p12->mac->salt->data, salt, saltlen); 161 p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type)); 162 if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) { 163 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 164 return 0; 165 } 166 p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL; 167 168 return 1; 169} 170#endif |