Lines Matching full:params

90 static int pkcs5_get_params_pbes2(struct pkcs5_params *params, const u8 *pos,
101 * PBES2-params ::= SEQUENCE {
106 * { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
113 "PKCS #5: Expected SEQUENCE (PBES2-params) - found class %d tag 0x%x",
151 * PBKDF2-params ::= SEQUENCE {
167 "PKCS #5: Expected SEQUENCE (PBKDF2-params) - found class %d tag 0x%x",
179 hdr.length > sizeof(params->salt)) {
186 os_memcpy(params->salt, hdr.payload, hdr.length);
187 params->salt_len = hdr.length;
188 wpa_hexdump(MSG_DEBUG, "PKCS #5: salt", params->salt, params->salt_len);
199 params->iter_count = *hdr.payload;
201 params->iter_count = WPA_GET_BE16(hdr.payload);
203 params->iter_count = WPA_GET_BE32(hdr.payload);
211 params->iter_count);
212 if (params->iter_count == 0 || params->iter_count > 0xffff) {
214 params->iter_count);
246 params->enc_alg = PBES2_ENC_ALG_DES_EDE3_CBC;
269 os_memcpy(params->iv, hdr.payload, hdr.length);
270 params->iv_len = hdr.length;
271 wpa_hexdump(MSG_DEBUG, "PKCS #5: IV", params->iv, params->iv_len);
278 struct pkcs5_params *params)
289 os_memset(params, 0, sizeof(*params));
299 params->alg = pkcs5_get_alg(&oid);
300 if (params->alg == PKCS5_ALG_UNKNOWN) {
306 if (params->alg == PKCS5_ALG_PBES2)
307 return pkcs5_get_params_pbes2(params, pos, enc_alg_end);
340 hdr.length > sizeof(params->salt)) {
347 os_memcpy(params->salt, hdr.payload, hdr.length);
348 params->salt_len = hdr.length;
350 params->salt, params->salt_len);
360 params->iter_count = *hdr.payload;
362 params->iter_count = WPA_GET_BE16(hdr.payload);
364 params->iter_count = WPA_GET_BE32(hdr.payload);
372 params->iter_count);
373 if (params->iter_count == 0 || params->iter_count > 0xffff) {
375 "iterationCount=0x%x", params->iter_count);
384 pkcs5_crypto_init_pbes2(struct pkcs5_params *params, const char *passwd)
388 if (params->enc_alg != PBES2_ENC_ALG_DES_EDE3_CBC ||
389 params->iv_len != 8)
395 params->salt, params->salt_len);
397 params->iter_count);
398 if (pbkdf2_sha1(passwd, params->salt, params->salt_len,
399 params->iter_count, key, sizeof(key)) < 0)
402 wpa_hexdump(MSG_DEBUG, "PKCS #5: DES IV", params->iv, params->iv_len);
404 return crypto_cipher_init(CRYPTO_CIPHER_ALG_3DES, params->iv,
511 pkcs12_crypto_init_sha1(struct pkcs5_params *params, const char *passwd)
519 if (params->alg != PKCS5_ALG_SHA1_3DES_CBC)
532 if (pkcs12_key_gen(pw, pw_len, params->salt, params->salt_len,
533 PKCS12_ID_ENC, params->iter_count,
535 pkcs12_key_gen(pw, pw_len, params->salt, params->salt_len,
536 PKCS12_ID_IV, params->iter_count,
551 static struct crypto_cipher * pkcs5_crypto_init(struct pkcs5_params *params,
559 if (params->alg == PKCS5_ALG_PBES2)
560 return pkcs5_crypto_init_pbes2(params, passwd);
562 if (params->alg == PKCS5_ALG_SHA1_3DES_CBC)
563 return pkcs12_crypto_init_sha1(params, passwd);
565 if (params->alg != PKCS5_ALG_MD5_DES_CBC)
570 addr[1] = params->salt;
571 len[1] = params->salt_len;
576 for (i = 1; i < params->iter_count; i++) {
594 struct pkcs5_params params;
597 if (pkcs5_get_params(enc_alg, enc_alg_len, &params) < 0) {
602 ctx = pkcs5_crypto_init(&params, passwd);