diff options
author | David Shaw <[email protected]> | 2009-06-05 14:11:03 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2009-06-05 14:11:03 +0000 |
commit | 047d97e95e1df831d699fb77cd58c269a13a5c5c (patch) | |
tree | 1aba8b3a366cbf6bfe543401009358b079ef3673 /g10/seckey-cert.c | |
parent | * defs.inc: Improved all_cipher_algos and all_hash_algos to work when (diff) | |
download | gnupg-047d97e95e1df831d699fb77cd58c269a13a5c5c.tar.gz gnupg-047d97e95e1df831d699fb77cd58c269a13a5c5c.zip |
Add full Camellia support.
* configure.ac: Remove Camellia restriction.
* gpg.c (main), misc.c (openpgp_cipher_test_algo): Remove Camellia
restriction.
* misc.c (map_cipher_openpgp_to_gcry), main.h: Add macros for
openpgp_cipher_open, openpgp_cipher_get_algo_keylen, and
openpgp_cipher_get_algo_blklen to wrap around the corresponding gcry_*
functions, but pass the algorithm number through
map_cipher_openpgp_to_gcry. This is needed in case the gcry algorithm
number doesn't match the OpenPGP number (c.f. Camellia).
* encr-data.c, pubkey-enc.c, mainproc.c, cipher.c, encode.c, seskey.c,
passphrase.c, seckey-cert.c: Use new openpgp_cipher_* macros here.
Diffstat (limited to 'g10/seckey-cert.c')
-rw-r--r-- | g10/seckey-cert.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/g10/seckey-cert.c b/g10/seckey-cert.c index 841421d94..821673541 100644 --- a/g10/seckey-cert.c +++ b/g10/seckey-cert.c @@ -1,6 +1,6 @@ /* seckey-cert.c - secret key certificate packet handling * Copyright (C) 1998, 1999, 2000, 2001, 2002, - * 2006 Free Software Foundation, Inc. + * 2006, 2009 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -86,11 +86,11 @@ do_check( PKT_secret_key *sk, const char *tryagain_text, int mode, return G10ERR_GENERAL; - err = gcry_cipher_open (&cipher_hd, sk->protect.algo, - GCRY_CIPHER_MODE_CFB, - (GCRY_CIPHER_SECURE - | (sk->protect.algo >= 100 ? - 0 : GCRY_CIPHER_ENABLE_SYNC))); + err = openpgp_cipher_open (&cipher_hd, sk->protect.algo, + GCRY_CIPHER_MODE_CFB, + (GCRY_CIPHER_SECURE + | (sk->protect.algo >= 100 ? + 0 : GCRY_CIPHER_ENABLE_SYNC))); if (err) log_fatal ("cipher open failed: %s\n", gpg_strerror (err) ); @@ -351,16 +351,16 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek ) else { print_cipher_algo_note( sk->protect.algo ); - if ( gcry_cipher_open (&cipher_hd, sk->protect.algo, - GCRY_CIPHER_MODE_CFB, - (GCRY_CIPHER_SECURE - | (sk->protect.algo >= 100 ? - 0 : GCRY_CIPHER_ENABLE_SYNC))) ) + if ( openpgp_cipher_open (&cipher_hd, sk->protect.algo, + GCRY_CIPHER_MODE_CFB, + (GCRY_CIPHER_SECURE + | (sk->protect.algo >= 100 ? + 0 : GCRY_CIPHER_ENABLE_SYNC))) ) BUG(); if ( gcry_cipher_setkey ( cipher_hd, dek->key, dek->keylen ) ) log_info(_("WARNING: Weak key detected" " - please change passphrase again.\n")); - sk->protect.ivlen = gcry_cipher_get_algo_blklen (sk->protect.algo); + sk->protect.ivlen = openpgp_cipher_get_algo_blklen (sk->protect.algo); assert( sk->protect.ivlen <= DIM(sk->protect.iv) ); if( sk->protect.ivlen != 8 && sk->protect.ivlen != 16 ) BUG(); /* yes, we are very careful */ @@ -471,4 +471,3 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek ) } return rc; } - |