Skip to content

Commit

Permalink
lib-dcrypt: drop format from key_load_private
Browse files Browse the repository at this point in the history
  • Loading branch information
mrannanj authored and sirainen committed Aug 4, 2016
1 parent b55e127 commit 45cc36e
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 16 deletions.
3 changes: 2 additions & 1 deletion src/lib-dcrypt/dcrypt-openssl.c
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion src/lib-dcrypt/dcrypt-private.h
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions src/lib-dcrypt/dcrypt.c
Expand Up @@ -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)
{
Expand Down
2 changes: 1 addition & 1 deletion src/lib-dcrypt/dcrypt.h
Expand Up @@ -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);
Expand Down
18 changes: 9 additions & 9 deletions src/lib-dcrypt/test-crypto.c
Expand Up @@ -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);

Expand All @@ -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 */
Expand All @@ -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 */
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);

Expand Down
4 changes: 2 additions & 2 deletions src/lib-dcrypt/test-stream.c
Expand Up @@ -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) = {
Expand Down

0 comments on commit 45cc36e

Please sign in to comment.