From: Pekka Riikonen Date: Mon, 18 Jun 2007 05:21:06 +0000 (+0000) Subject: Check for valid public key identifier. X-Git-Tag: silc.toolkit.1.1.1~13 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=be954a871b8caad6a2102ee487f9facd30c86fc2 Check for valid public key identifier. --- diff --git a/CHANGES b/CHANGES index 33b48e66..a456045e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Mon Jun 18 08:14:26 EEST 2007 Pekka Riikonen + + * Fixed silc_create_key_pair to check for valid identifier. + Affected file is lib/silcapputil/silcapputil.c. + Sun Jun 17 20:08:26 CEST 2007 Jochen Eisinger * Rewrite signed public message handling, adopting the new diff --git a/lib/silcapputil/silcapputil.c b/lib/silcapputil/silcapputil.c index 6ecdd143..833f40e2 100644 --- a/lib/silcapputil/silcapputil.c +++ b/lib/silcapputil/silcapputil.c @@ -146,6 +146,12 @@ New pair of keys will be created. Please, answer to following questions.\n\ silc_free(def); } + if (!strstr(identifier, "UN=") || !strstr(identifier, "HN=")) { + fprintf(stderr, "Invalid public key identifier. You must specify both " + "UN and HN\n"); + return FALSE; + } + rng = silc_rng_alloc(); silc_rng_init(rng); silc_rng_global_init(rng); @@ -202,12 +208,14 @@ New pair of keys will be created. Please, answer to following questions.\n\ return FALSE; /* Save public key into file */ - silc_pkcs_save_public_key(pkfile, public_key, SILC_PKCS_FILE_BASE64); + if (!silc_pkcs_save_public_key(pkfile, public_key, SILC_PKCS_FILE_BASE64)) + return FALSE; /* Save private key into file */ - silc_pkcs_save_private_key(prvfile, private_key, - (const unsigned char *)pass, strlen(pass), - SILC_PKCS_FILE_BIN, rng); + if (!silc_pkcs_save_private_key(prvfile, private_key, + (const unsigned char *)pass, strlen(pass), + SILC_PKCS_FILE_BIN, rng)) + return FALSE; if (return_public_key) *return_public_key = public_key;