From be954a871b8caad6a2102ee487f9facd30c86fc2 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Mon, 18 Jun 2007 05:21:06 +0000 Subject: [PATCH] Check for valid public key identifier. --- CHANGES | 5 +++++ lib/silcapputil/silcapputil.c | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) 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; -- 2.24.0