[OpenPGP:SDK svn] r349 - openpgpsdk/trunk/src
Subversion
ben at algroup.co.uk
Tue Jan 31 12:17:07 GMT 2006
Author: ben
Date: 2006-01-31 12:17:07 +0000 (Tue, 31 Jan 2006)
New Revision: 349
Modified:
openpgpsdk/trunk/src/packet-parse.c
Log:
Handle incorrect passphrase properly.
Modified: openpgpsdk/trunk/src/packet-parse.c
===================================================================
--- openpgpsdk/trunk/src/packet-parse.c 2006-01-31 12:11:22 UTC (rev 348)
+++ openpgpsdk/trunk/src/packet-parse.c 2006-01-31 12:17:07 UTC (rev 349)
@@ -1982,29 +1982,30 @@
assert(0);
}
- if(ret)
+ if(C.secret_key.s2k_usage == OPS_S2KU_ENCRYPTED_AND_HASHED)
{
- // XXX: check the checksum
+ unsigned char hash[20];
- if(C.secret_key.s2k_usage == OPS_S2KU_ENCRYPTED_AND_HASHED)
+ ops_reader_pop_hash(parse_info);
+ checkhash.finish(&checkhash,hash);
+
+ if(ret)
{
- unsigned char hash[20];
-
- ops_reader_pop_hash(parse_info);
- checkhash.finish(&checkhash,hash);
-
if(!limited_read(C.secret_key.checkhash,20,region,parse_info))
return 0;
if(memcmp(hash,C.secret_key.checkhash,20))
ERRP(parse_info,"Hash mismatch in secret key");
}
- else
- {
- unsigned short sum;
+ }
+ else
+ {
+ unsigned short sum;
- sum=ops_reader_pop_sum16(parse_info);
+ sum=ops_reader_pop_sum16(parse_info);
+ if(ret)
+ {
if(!limited_read_scalar(&C.secret_key.checksum,2,region,
parse_info))
return 0;
@@ -2018,7 +2019,7 @@
|| C.secret_key.s2k_usage == OPS_S2KU_ENCRYPTED_AND_HASHED)
{
ops_reader_pop_decrypt(parse_info);
- assert(region->length_read == region->length);
+ assert(!ret || region->length_read == region->length);
}
if(!ret)
More information about the OpenPGPsdk-svn
mailing list