akcipher-gcrypt.c.inc (2417cbd5916d043e0c56408221fbe9935d0bc8da) | akcipher-gcrypt.c.inc (5f4059ef33e927ce9f72cb60000efa156566cd5c) |
---|---|
1/* 2 * QEMU Crypto akcipher algorithms 3 * 4 * Copyright (c) 2022 Bytedance 5 * Author: lei he <helei.sig11@bytedance.com> 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 71 unchanged lines hidden (view full) --- 80 akcipher->max_signature_len = key_size; 81} 82 83static int qcrypto_gcrypt_parse_rsa_private_key( 84 QCryptoGcryptRSA *rsa, 85 const uint8_t *key, size_t keylen, Error **errp) 86{ 87 g_autoptr(QCryptoAkCipherRSAKey) rsa_key = qcrypto_akcipher_rsakey_parse( | 1/* 2 * QEMU Crypto akcipher algorithms 3 * 4 * Copyright (c) 2022 Bytedance 5 * Author: lei he <helei.sig11@bytedance.com> 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 71 unchanged lines hidden (view full) --- 80 akcipher->max_signature_len = key_size; 81} 82 83static int qcrypto_gcrypt_parse_rsa_private_key( 84 QCryptoGcryptRSA *rsa, 85 const uint8_t *key, size_t keylen, Error **errp) 86{ 87 g_autoptr(QCryptoAkCipherRSAKey) rsa_key = qcrypto_akcipher_rsakey_parse( |
88 QCRYPTO_AKCIPHER_KEY_TYPE_PRIVATE, key, keylen, errp); | 88 QCRYPTO_AK_CIPHER_KEY_TYPE_PRIVATE, key, keylen, errp); |
89 gcry_mpi_t n = NULL, e = NULL, d = NULL, p = NULL, q = NULL, u = NULL; 90 bool compute_mul_inv = false; 91 int ret = -1; 92 gcry_error_t err; 93 94 if (!rsa_key) { 95 return ret; 96 } --- 76 unchanged lines hidden (view full) --- 173 174static int qcrypto_gcrypt_parse_rsa_public_key(QCryptoGcryptRSA *rsa, 175 const uint8_t *key, 176 size_t keylen, 177 Error **errp) 178{ 179 180 g_autoptr(QCryptoAkCipherRSAKey) rsa_key = qcrypto_akcipher_rsakey_parse( | 89 gcry_mpi_t n = NULL, e = NULL, d = NULL, p = NULL, q = NULL, u = NULL; 90 bool compute_mul_inv = false; 91 int ret = -1; 92 gcry_error_t err; 93 94 if (!rsa_key) { 95 return ret; 96 } --- 76 unchanged lines hidden (view full) --- 173 174static int qcrypto_gcrypt_parse_rsa_public_key(QCryptoGcryptRSA *rsa, 175 const uint8_t *key, 176 size_t keylen, 177 Error **errp) 178{ 179 180 g_autoptr(QCryptoAkCipherRSAKey) rsa_key = qcrypto_akcipher_rsakey_parse( |
181 QCRYPTO_AKCIPHER_KEY_TYPE_PUBLIC, key, keylen, errp); | 181 QCRYPTO_AK_CIPHER_KEY_TYPE_PUBLIC, key, keylen, errp); |
182 gcry_mpi_t n = NULL, e = NULL; 183 int ret = -1; 184 gcry_error_t err; 185 186 if (!rsa_key) { 187 return ret; 188 } 189 --- 345 unchanged lines hidden (view full) --- 535 Error **errp) 536{ 537 QCryptoGcryptRSA *rsa = g_new0(QCryptoGcryptRSA, 1); 538 rsa->padding_alg = opt->padding_alg; 539 rsa->hash_alg = opt->hash_alg; 540 rsa->akcipher.driver = &gcrypt_rsa; 541 542 switch (type) { | 182 gcry_mpi_t n = NULL, e = NULL; 183 int ret = -1; 184 gcry_error_t err; 185 186 if (!rsa_key) { 187 return ret; 188 } 189 --- 345 unchanged lines hidden (view full) --- 535 Error **errp) 536{ 537 QCryptoGcryptRSA *rsa = g_new0(QCryptoGcryptRSA, 1); 538 rsa->padding_alg = opt->padding_alg; 539 rsa->hash_alg = opt->hash_alg; 540 rsa->akcipher.driver = &gcrypt_rsa; 541 542 switch (type) { |
543 case QCRYPTO_AKCIPHER_KEY_TYPE_PRIVATE: | 543 case QCRYPTO_AK_CIPHER_KEY_TYPE_PRIVATE: |
544 if (qcrypto_gcrypt_parse_rsa_private_key(rsa, key, keylen, errp) != 0) { 545 goto error; 546 } 547 break; 548 | 544 if (qcrypto_gcrypt_parse_rsa_private_key(rsa, key, keylen, errp) != 0) { 545 goto error; 546 } 547 break; 548 |
549 case QCRYPTO_AKCIPHER_KEY_TYPE_PUBLIC: | 549 case QCRYPTO_AK_CIPHER_KEY_TYPE_PUBLIC: |
550 if (qcrypto_gcrypt_parse_rsa_public_key(rsa, key, keylen, errp) != 0) { 551 goto error; 552 } 553 break; 554 555 default: 556 error_setg(errp, "Unknown akcipher key type %d", type); 557 goto error; --- 38 unchanged lines hidden --- | 550 if (qcrypto_gcrypt_parse_rsa_public_key(rsa, key, keylen, errp) != 0) { 551 goto error; 552 } 553 break; 554 555 default: 556 error_setg(errp, "Unknown akcipher key type %d", type); 557 goto error; --- 38 unchanged lines hidden --- |