From 45cc36e2b6482b5cff72cf65fa5c527034a5c84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martti=20Rannanj=C3=A4rvi?= Date: Thu, 4 Aug 2016 12:52:20 +0300 Subject: [PATCH] lib-dcrypt: drop format from key_load_private --- src/lib-dcrypt/dcrypt-openssl.c | 3 ++- src/lib-dcrypt/dcrypt-private.h | 2 +- src/lib-dcrypt/dcrypt.c | 4 ++-- src/lib-dcrypt/dcrypt.h | 2 +- src/lib-dcrypt/test-crypto.c | 18 +++++++++--------- src/lib-dcrypt/test-stream.c | 4 ++-- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c index 5414ef1cbe..0f6553292f 100644 --- a/src/lib-dcrypt/dcrypt-openssl.c +++ b/src/lib-dcrypt/dcrypt-openssl.c @@ -1550,9 +1550,10 @@ bool dcrypt_openssl_store_public_key_dovecot(struct dcrypt_public_key *key, buff static bool dcrypt_openssl_load_private_key(struct dcrypt_private_key **key_r, - enum dcrypt_key_format format, const char *data, const char *password, + const char *data, const char *password, struct dcrypt_private_key *dec_key, const char **error_r) { + enum dcrypt_key_format format; enum dcrypt_key_version version; enum dcrypt_key_kind kind; if (!dcrypt_openssl_key_string_get_info(data, &format, &version, diff --git a/src/lib-dcrypt/dcrypt-private.h b/src/lib-dcrypt/dcrypt-private.h index 0fc185c18e..1c512c8a75 100644 --- a/src/lib-dcrypt/dcrypt-private.h +++ b/src/lib-dcrypt/dcrypt-private.h @@ -63,7 +63,7 @@ struct dcrypt_vfs { bool (*generate_keypair)(struct dcrypt_keypair *pair_r, enum dcrypt_key_type kind, unsigned int bits, const char *curve, const char **error_r); - bool (*load_private_key)(struct dcrypt_private_key **key_r, enum dcrypt_key_format format, const char *data, + bool (*load_private_key)(struct dcrypt_private_key **key_r, const char *data, const char *password, struct dcrypt_private_key *dec_key, const char **error_r); bool (*load_public_key)(struct dcrypt_public_key **key_r, enum dcrypt_key_format format, const char *data, const char **error_r); diff --git a/src/lib-dcrypt/dcrypt.c b/src/lib-dcrypt/dcrypt.c index fa8ec484b1..df2f1835fe 100644 --- a/src/lib-dcrypt/dcrypt.c +++ b/src/lib-dcrypt/dcrypt.c @@ -200,10 +200,10 @@ bool dcrypt_keypair_generate(struct dcrypt_keypair *pair_r, enum dcrypt_key_type return dcrypt_vfs->generate_keypair(pair_r, kind, bits, curve, error_r); } -bool dcrypt_key_load_private(struct dcrypt_private_key **key_r, enum dcrypt_key_format format, const char *data, +bool dcrypt_key_load_private(struct dcrypt_private_key **key_r, const char *data, const char *password, struct dcrypt_private_key *dec_key, const char **error_r) { - return dcrypt_vfs->load_private_key(key_r, format, data, password, dec_key, error_r); + return dcrypt_vfs->load_private_key(key_r, data, password, dec_key, error_r); } bool dcrypt_key_load_public(struct dcrypt_public_key **key_r, enum dcrypt_key_format format, const char *data, const char **error_r) { diff --git a/src/lib-dcrypt/dcrypt.h b/src/lib-dcrypt/dcrypt.h index 4957977307..4bb516a504 100644 --- a/src/lib-dcrypt/dcrypt.h +++ b/src/lib-dcrypt/dcrypt.h @@ -172,7 +172,7 @@ bool dcrypt_keypair_generate(struct dcrypt_keypair *pair_r, enum dcrypt_key_type * * you can provide either PASSWORD or ENC_KEY, not both. */ -bool dcrypt_key_load_private(struct dcrypt_private_key **key_r, enum dcrypt_key_format format, const char *data, +bool dcrypt_key_load_private(struct dcrypt_private_key **key_r, const char *data, const char *password, struct dcrypt_private_key *dec_key, const char **error_r); bool dcrypt_key_load_public(struct dcrypt_public_key **key_r, enum dcrypt_key_format format, const char *data, const char **error_r); diff --git a/src/lib-dcrypt/test-crypto.c b/src/lib-dcrypt/test-crypto.c index 093041f95c..ef980c498e 100644 --- a/src/lib-dcrypt/test-crypto.c +++ b/src/lib-dcrypt/test-crypto.c @@ -265,11 +265,11 @@ void test_load_v1_keys(void) pkey = NULL; error = NULL; - ret = dcrypt_key_load_private(&pkey2, format, data3, NULL, NULL, &error); + ret = dcrypt_key_load_private(&pkey2, data3, NULL, NULL, &error); test_assert(ret == TRUE); test_assert(error == NULL); - ret = dcrypt_key_load_private(&pkey, format, data1, NULL, pkey2, &error); + ret = dcrypt_key_load_private(&pkey, data1, NULL, pkey2, &error); test_assert(ret == TRUE); test_assert(error == NULL); @@ -289,7 +289,7 @@ void test_load_v1_key(void) struct dcrypt_private_key *pkey = NULL, *pkey2 = NULL; const char *error = NULL; - test_assert(dcrypt_key_load_private(&pkey, DCRYPT_FORMAT_DOVECOT, "1\t716\t0\t048FD04FD3612B22D32790C592CF21CEF417EFD2EA34AE5F688FA5B51BED29E05A308B68DA78E16E90B47A11E133BD9A208A2894FD01B0BEE865CE339EA3FB17AC\td0cfaca5d335f9edc41c84bb47465184cb0e2ec3931bebfcea4dd433615e77a0", NULL, NULL, &error)); + test_assert(dcrypt_key_load_private(&pkey, "1\t716\t0\t048FD04FD3612B22D32790C592CF21CEF417EFD2EA34AE5F688FA5B51BED29E05A308B68DA78E16E90B47A11E133BD9A208A2894FD01B0BEE865CE339EA3FB17AC\td0cfaca5d335f9edc41c84bb47465184cb0e2ec3931bebfcea4dd433615e77a0", NULL, NULL, &error)); if (pkey != NULL) { buffer_set_used_size(key_1, 0); /* check that key_id matches */ @@ -303,7 +303,7 @@ void test_load_v1_key(void) dcrypt_key_unref_public(&pubkey); pkey2 = NULL; - test_assert(dcrypt_key_load_private(&pkey2, DCRYPT_FORMAT_DOVECOT, "1\t716\t1\t0567e6bf9579813ae967314423b0fceb14bda24749303923de9a9bb9370e0026f995901a57e63113eeb2baf0c940e978d00686cbb52bd5014bc318563375876255\t0300E46DA2125427BE968EB3B649910CDC4C405E5FFDE18D433A97CABFEE28CEEFAE9EE356C792004FFB80981D67E741B8CC036A34235A8D2E1F98D1658CFC963D07EB\td0cfaca5d335f9edc41c84bb47465184cb0e2ec3931bebfcea4dd433615e77a0\t7c9a1039ea2e4fed73e81dd3ffc3fa22ea4a28352939adde7bf8ea858b00fa4f", NULL, pkey, &error)); + test_assert(dcrypt_key_load_private(&pkey2, "1\t716\t1\t0567e6bf9579813ae967314423b0fceb14bda24749303923de9a9bb9370e0026f995901a57e63113eeb2baf0c940e978d00686cbb52bd5014bc318563375876255\t0300E46DA2125427BE968EB3B649910CDC4C405E5FFDE18D433A97CABFEE28CEEFAE9EE356C792004FFB80981D67E741B8CC036A34235A8D2E1F98D1658CFC963D07EB\td0cfaca5d335f9edc41c84bb47465184cb0e2ec3931bebfcea4dd433615e77a0\t7c9a1039ea2e4fed73e81dd3ffc3fa22ea4a28352939adde7bf8ea858b00fa4f", NULL, pkey, &error)); if (pkey2 != NULL) { buffer_set_used_size(key_1, 0); /* check that key_id matches */ @@ -385,25 +385,25 @@ void test_load_v2_key(void) struct dcrypt_private_key *priv,*priv2; - test_assert_idx(dcrypt_key_load_private(&priv2, DCRYPT_FORMAT_PEM, keys[0], NULL, NULL, &error), 0); + test_assert_idx(dcrypt_key_load_private(&priv2, keys[0], NULL, NULL, &error), 0); test_assert_idx(dcrypt_key_store_private(priv2, DCRYPT_FORMAT_PEM, NULL, tmp, NULL, NULL, &error), 0); test_assert_idx(strcmp(str_c(tmp), keys[0])==0, 0); buffer_set_used_size(tmp, 0); - test_assert_idx(dcrypt_key_load_private(&priv, DCRYPT_FORMAT_DOVECOT, keys[1], NULL, NULL, &error), 1); + test_assert_idx(dcrypt_key_load_private(&priv, keys[1], NULL, NULL, &error), 1); test_assert_idx(dcrypt_key_store_private(priv, DCRYPT_FORMAT_DOVECOT, NULL, tmp, NULL, NULL, &error), 1); test_assert_idx(strcmp(str_c(tmp), keys[1])==0, 1); buffer_set_used_size(tmp, 0); dcrypt_key_unref_private(&priv); - test_assert_idx(dcrypt_key_load_private(&priv, DCRYPT_FORMAT_DOVECOT, keys[2], "This Is Sparta", NULL, &error), 2); + test_assert_idx(dcrypt_key_load_private(&priv, keys[2], "This Is Sparta", NULL, &error), 2); test_assert_idx(dcrypt_key_store_private(priv, DCRYPT_FORMAT_DOVECOT, "aes-256-ctr", tmp, "This Is Sparta", NULL, &error), 2); buffer_set_used_size(tmp, 0); dcrypt_key_unref_private(&priv); struct dcrypt_public_key *pub = NULL; dcrypt_key_convert_private_to_public(priv2, &pub); - test_assert_idx(dcrypt_key_load_private(&priv, DCRYPT_FORMAT_DOVECOT, keys[3], NULL, priv2, &error), 3); + test_assert_idx(dcrypt_key_load_private(&priv, keys[3], NULL, priv2, &error), 3); test_assert_idx(dcrypt_key_store_private(priv, DCRYPT_FORMAT_DOVECOT, "ecdh-aes-256-ctr", tmp, NULL, pub, &error), 3); buffer_set_used_size(tmp, 0); dcrypt_key_unref_private(&priv2); @@ -611,7 +611,7 @@ void test_load_invalid_keys(void) { key = "2:305e301006072a8648ce3d020106052b81040026034a000203fcc90034fa03d6fb79a0fc8b3b43c3398f68e76029307360cdcb9e27bb7e84b3c19dfb7244763bc4d442d216f09b7b7945ed9d182f3156550e9ee30b237a0217dbf79d28975f31:86706b69d1f640011a65d26a42f2ba20a619173644e1cc7475eb1d90966e84dc"; struct dcrypt_private_key *priv_key = NULL; - ret = dcrypt_key_load_private(&priv_key, DCRYPT_FORMAT_DOVECOT, key, NULL, NULL, &error); + ret = dcrypt_key_load_private(&priv_key, key, NULL, NULL, &error); test_assert(ret == FALSE); test_assert(error != NULL); diff --git a/src/lib-dcrypt/test-stream.c b/src/lib-dcrypt/test-stream.c index 77eb8efe9b..e352519fdc 100644 --- a/src/lib-dcrypt/test-stream.c +++ b/src/lib-dcrypt/test-stream.c @@ -427,9 +427,9 @@ int main(void) { dcrypt_initialize("openssl", NULL, NULL); random_init(); - test_assert(dcrypt_key_load_private(&test_v1_kp.priv, DCRYPT_FORMAT_PEM, key_v1_priv, NULL, NULL, NULL)); + test_assert(dcrypt_key_load_private(&test_v1_kp.priv, key_v1_priv, NULL, NULL, NULL)); test_assert(dcrypt_key_load_public(&test_v1_kp.pub, DCRYPT_FORMAT_PEM, key_v1_pub, NULL)); - test_assert(dcrypt_key_load_private(&test_v2_kp.priv, DCRYPT_FORMAT_PEM, key_v2_priv, NULL, NULL, NULL)); + test_assert(dcrypt_key_load_private(&test_v2_kp.priv, key_v2_priv, NULL, NULL, NULL)); test_assert(dcrypt_key_load_public(&test_v2_kp.pub, DCRYPT_FORMAT_PEM, key_v2_pub, NULL)); static void (*test_functions[])(void) = {