Lines Matching defs:kg
248 struct keygen *kg;
262 kg = NULL;
320 kg = keygen_method(string_fromcharstar(optarg));
321 if (!kg)
323 keygen_addlist(&p->keygen, kg);
446 getkey(const char *dev, struct keygen *kg, size_t len0,
452 VPRINTF(3, ("getkey(\"%s\", %p, %zu) called\n", dev, kg, len0));
453 for (; kg; kg=kg->next) {
461 if (kg->kg_sharedid) {
462 const char *id = string_tocharstar(kg->kg_sharedid);
464 len = kg->kg_sharedlen;
466 if (kg->kg_sharedalg == sk->alg &&
467 kg->kg_sharedlen == bits_len(sk->key) &&
477 switch (kg->kg_method) {
479 tmp = getkey_storedkey(dev, kg, len);
482 tmp = getkey_randomkey(dev, kg, len, 1);
485 tmp = getkey_randomkey(dev, kg, len, 0);
489 tmp = getkey_argon2id(dev, kg, len);
493 tmp = getkey_pkcs5_pbkdf2(dev, kg, len, 0);
497 tmp = getkey_pkcs5_pbkdf2(dev, kg, len, 1);
500 tmp = getkey_shell_cmd(dev, kg, len);
504 kg->kg_method);
513 if (kg->kg_sharedid) {
516 sk->alg = kg->kg_sharedalg;
517 sk->id = string_dup(kg->kg_sharedid);
523 derive: if (kg->kg_sharedid) {
530 tmp = getsubkey(kg->kg_sharedalg, tmp,
531 kg->kg_sharedinfo, len0);
551 getkey_storedkey(const char *target, struct keygen *kg, size_t keylen)
553 return bits_dup(kg->kg_key);
558 getkey_randomkey(const char *target, struct keygen *kg, size_t keylen, int hard)
612 getkey_pkcs5_pbkdf2(const char *target, struct keygen *kg, size_t keylen,
625 bits_getbuf(kg->kg_salt), BITS2BYTES(bits_len(kg->kg_salt)),
626 kg->kg_iterations, compat)) {
632 kg->kg_key = bits_dup(ret);
641 getkey_argon2id(const char *target, struct keygen *kg, size_t keylen)
652 if ((error = argon2_hash(kg->kg_iterations, kg->kg_memory,
653 kg->kg_parallelism,
655 bits_getbuf(kg->kg_salt),
656 BITS2BYTES(bits_len(kg->kg_salt)),
659 Argon2_id, kg->kg_version)) != ARGON2_OK) {
665 kg->kg_key = bits_dup(ret);
675 getkey_shell_cmd(const char *target, struct keygen *kg, size_t keylen)
681 if ((f = popen(string_tocharstar(kg->kg_cmd), "r")) == NULL)
746 struct keygen *kg;
822 for (kg = p->keygen;
823 (pflag & PFLAG_GETPASS_MASK) && kg;
824 kg = kg->next)
825 if (kg->kg_method == KEYGEN_ARGON2ID ||
826 kg->kg_method == KEYGEN_PKCS5_PBKDF2_SHA1 ||
827 kg->kg_method == KEYGEN_PKCS5_PBKDF2_OLD) {
1336 struct keygen *kg;
1341 for (kg = p->keygen; kg && !ret; kg = kg->next) {
1342 if (kg->kg_method != KEYGEN_ARGON2ID &&
1343 kg->kg_method != KEYGEN_PKCS5_PBKDF2_SHA1 &&
1344 kg->kg_method != KEYGEN_PKCS5_PBKDF2_OLD)
1347 orig_key = kg->kg_key;
1348 kg->kg_key = NULL;
1350 switch (kg->kg_method) {
1353 key = getkey_argon2id("re-enter device", kg,
1358 key = getkey_pkcs5_pbkdf2("re-enter device", kg,
1362 key = getkey_pkcs5_pbkdf2("re-enter device", kg,
1367 kg->kg_key = orig_key;
1374 bits_free(kg->kg_key);
1375 kg->kg_key = orig_key;
1457 struct keygen *kg;
1468 for (kg=p->keygen; kg; kg=kg->next)
1469 if ((kg->kg_method == KEYGEN_RANDOMKEY) ||
1470 (kg->kg_method == KEYGEN_URANDOMKEY)) {
1474 for (kg=oldp->keygen; kg; kg=kg->next)
1475 if ((kg->kg_method == KEYGEN_RANDOMKEY) ||
1476 (kg->kg_method == KEYGEN_URANDOMKEY)) {
1540 kg = keygen_generate(KEYGEN_STOREDKEY);
1541 kg->kg_key = bits_xor(p->key, oldp->key);
1542 keygen_addlist(&p->keygen, kg);