aboutsummaryrefslogtreecommitdiffstats
path: root/g10/seckey-cert.c
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2009-06-05 14:11:03 +0000
committerDavid Shaw <[email protected]>2009-06-05 14:11:03 +0000
commit047d97e95e1df831d699fb77cd58c269a13a5c5c (patch)
tree1aba8b3a366cbf6bfe543401009358b079ef3673 /g10/seckey-cert.c
parent* defs.inc: Improved all_cipher_algos and all_hash_algos to work when (diff)
downloadgnupg-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.c25
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;
}
-