Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: openssl/crypto/pkcs12/p12_mutl.c

Issue 9254031: Upgrade chrome's OpenSSL to same version Android ships with. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « openssl/crypto/pkcs12/p12_kiss.c ('k') | openssl/crypto/pkcs12/p12_utl.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* p12_mutl.c */ 1 /* p12_mutl.c */
2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
5 /* ==================================================================== 5 /* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 #include <openssl/pkcs12.h> 64 #include <openssl/pkcs12.h>
65 65
66 /* Generate a MAC */ 66 /* Generate a MAC */
67 int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, 67 int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,
68 unsigned char *mac, unsigned int *maclen) 68 unsigned char *mac, unsigned int *maclen)
69 { 69 {
70 const EVP_MD *md_type; 70 const EVP_MD *md_type;
71 HMAC_CTX hmac; 71 HMAC_CTX hmac;
72 unsigned char key[EVP_MAX_MD_SIZE], *salt; 72 unsigned char key[EVP_MAX_MD_SIZE], *salt;
73 int saltlen, iter; 73 int saltlen, iter;
74 int md_size;
74 75
75 if (!PKCS7_type_is_data(p12->authsafes)) 76 if (!PKCS7_type_is_data(p12->authsafes))
76 { 77 {
77 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_CONTENT_TYPE_NOT_DATA ); 78 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_CONTENT_TYPE_NOT_DATA );
78 return 0; 79 return 0;
79 } 80 }
80 81
81 salt = p12->mac->salt->data; 82 salt = p12->mac->salt->data;
82 saltlen = p12->mac->salt->length; 83 saltlen = p12->mac->salt->length;
83 if (!p12->mac->iter) iter = 1; 84 if (!p12->mac->iter) iter = 1;
84 else iter = ASN1_INTEGER_get (p12->mac->iter); 85 else iter = ASN1_INTEGER_get (p12->mac->iter);
85 if(!(md_type = 86 if(!(md_type =
86 EVP_get_digestbyobj (p12->mac->dinfo->algor->algorithm))) { 87 EVP_get_digestbyobj (p12->mac->dinfo->algor->algorithm))) {
87 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_UNKNOWN_DIGEST_ALGORI THM); 88 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_UNKNOWN_DIGEST_ALGORI THM);
88 return 0; 89 return 0;
89 } 90 }
91 md_size = EVP_MD_size(md_type);
92 if (md_size < 0)
93 return 0;
90 if(!PKCS12_key_gen (pass, passlen, salt, saltlen, PKCS12_MAC_ID, iter, 94 if(!PKCS12_key_gen (pass, passlen, salt, saltlen, PKCS12_MAC_ID, iter,
91 » » » » EVP_MD_size(md_type), key, md_type)) { 95 » » » » md_size, key, md_type)) {
92 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_KEY_GEN_ERROR); 96 PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_KEY_GEN_ERROR);
93 return 0; 97 return 0;
94 } 98 }
95 HMAC_CTX_init(&hmac); 99 HMAC_CTX_init(&hmac);
96 » HMAC_Init_ex(&hmac, key, EVP_MD_size(md_type), md_type, NULL); 100 » HMAC_Init_ex(&hmac, key, md_size, md_type, NULL);
97 HMAC_Update(&hmac, p12->authsafes->d.data->data, 101 HMAC_Update(&hmac, p12->authsafes->d.data->data,
98 p12->authsafes->d.data->length); 102 p12->authsafes->d.data->length);
99 HMAC_Final(&hmac, mac, maclen); 103 HMAC_Final(&hmac, mac, maclen);
100 HMAC_CTX_cleanup(&hmac); 104 HMAC_CTX_cleanup(&hmac);
101 return 1; 105 return 1;
102 } 106 }
103 107
104 /* Verify the mac */ 108 /* Verify the mac */
105 int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen) 109 int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)
106 { 110 {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type)); 177 p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type));
174 if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) { 178 if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) {
175 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); 179 PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
176 return 0; 180 return 0;
177 } 181 }
178 p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL; 182 p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL;
179 183
180 return 1; 184 return 1;
181 } 185 }
182 #endif 186 #endif
OLDNEW
« no previous file with comments | « openssl/crypto/pkcs12/p12_kiss.c ('k') | openssl/crypto/pkcs12/p12_utl.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698