Merge branch 'master' into ueno-pss
authorWerner Koch <wk@gnupg.org>
Thu, 9 Jun 2011 07:05:15 +0000 (09:05 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 9 Jun 2011 07:05:15 +0000 (09:05 +0200)
Solved conflicts:
cipher/ChangeLog
cipher/pubkey.c
tests/ChangeLog
tests/basic.c

1  2 
cipher/ChangeLog
cipher/pubkey.c
tests/ChangeLog
tests/basic.c

@@@ -1,24 -1,30 +1,48 @@@
- 2011-05-24  Daiki Ueno  <ueno@unixuser.org>
-       * pubkey.c (mgf1): Simplify initializing MD handle.
 +2011-06-08  Werner Koch  <wk@g10code.com>
 +
 +      * pubkey.c (pss_encode, pss_verify): Restructure and comment code
 +      to match rfc-3447.  Replace secure allocs by plain allocs and
 +      wipememory.  Use gcry_md_hash_buffer.
 +      (octet_string_from_mpi): New.
 +
+ 2011-06-03  Werner Koch  <wk@g10code.com>
+       * pubkey.c (oaep_decode): Add more comments and restructure to
+       match the description in RFC-3447.
+       (oaep_encode): Check for mgf1 error.  s/dlen/hlen/.
+ 2011-05-31  Werner Koch  <wk@g10code.com>
+       * pubkey.c (mgf1): Optimize by using gcry_md_reset.  Re-implement
+       for easier readability.
+       (oaep_encode): Add more comments and restructure to match the
+       description in RFC-3447.
+       * pubkey.c (pkcs1_encode_for_signature, oaep_decode): Change
+       return value from one MPI to a buffer.
+       (gcry_pk_decrypt): Adjust for this change.
+ 2011-05-30  Werner Koch  <wk@g10code.com>
+       * pubkey.c (pkcs1_decode_for_encryption): Change handling of
+       leading zero byte.
+ 2011-05-27  Daiki Ueno  <ueno@unixuser.org>
+       * pubkey.c (gcry_pk_decrypt): Fix double-free when un-padding
+       invalid data.  Thanks to Tom Ritter.
 +2011-05-24  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * rsa.c (rsa_verify): Use CMP if given, to check the decrypted
 +      sig.
 +
 +      * pubkey.c (sexp_to_enc, sexp_data_to_mpi): Factor out
 +      CTX initialization to ...
 +      (init_encoding_ctx): .. new.
 +      (gcry_pk_verify): Pass verify func and the arg to pubkey_verify.
++      (pss_encode, pss_verify, pss_verify_cmp): New.
 +
  2011-05-23  Daiki Ueno  <ueno@unixuser.org>
  
        * pubkey.c (pkcs1_decode_for_encryption, oaep_decode): Fix memleak
diff --cc cipher/pubkey.c
Simple merge
diff --cc tests/ChangeLog
@@@ -1,13 -1,11 +1,21 @@@
+ 2011-06-03  Werner Koch  <wk@g10code.com>
+       * basic.c (main): Add option --die.
+ 2011-05-27  Daiki Ueno  <ueno@unixuser.org>
+       * basic.c (check_pubkey_crypt): Add test data with invalid padding.
 +2011-05-24  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * basic.c (do_check_one_pubkey): Add new arg ALGO to tell which PK
 +      algorithm is used for check_pubkey_sign, check_pubkey_crypt,
 +      check_pubkey_grip.
 +      (check_pubkey_sign): Add new arg ALGO; skip test data if it does
 +      not match ALGO.
 +      (check_pubkey_crypt): Add new arg ALGO.
 +      (check_pubkey_grip): Ditto.
 +
  2011-05-18  Daiki Ueno  <ueno@unixuser.org>
  
        * basic.c (check_pubkey_crypt): Remove unused "unpad" flag.
diff --cc tests/basic.c
@@@ -2435,12 -2430,20 +2448,25 @@@ check_pubkey_crypt (int n, gcry_sexp_t 
        " (hash sha1 #11223344556677889900AABBCCDDEEFF10203040#))\n",
        NULL,
        0,
-       GPG_ERR_INV_FLAG },
+       GPG_ERR_INV_FLAG,
+       0},
+       { "(data\n (flags raw)\n"
+       " (value #11223344556677889900AA#))\n",
+       "(flags oaep)",
+       1,
+       0,
+       GPG_ERR_ENCODING_PROBLEM },
+       { "(data\n (flags oaep)\n"
+       " (value #11223344556677889900AA#))\n",
+       "(flags pkcs1)",
+       1,
+       0,
+       GPG_ERR_ENCODING_PROBLEM },
 +      {       "(data\n (flags pss)\n"
 +      " (value #11223344556677889900AA#))\n",
 +      NULL,
 +      0,
 +      GPG_ERR_CONFLICT },
        { NULL }
      };