Fix strerror vs. gpg_strerror usage.
[gnupg.git] / agent / cvt-openpgp.c
index 6904593..ec0fd0a 100644 (file)
 #include "i18n.h"
 #include "cvt-openpgp.h"
 
-/* Macros for compatibility with older libgcrypt versions. */
-#ifndef HAVE_GCRY_PK_ECDSA
-# define GCRY_PK_ECDH  302
-#endif
-
-
-
 
 /* Helper to pass data via the callback to do_unprotect. */
 struct try_do_unprotect_arg_s
@@ -1053,7 +1046,10 @@ convert_to_openpgp (ctrl_t ctrl, gcry_sexp_t s_key, const char *passphrase,
 
   gcry_create_nonce (protect_iv, sizeof protect_iv);
   gcry_create_nonce (salt, sizeof salt);
-  s2k_count = get_standard_s2k_count ();
+  /* We need to use the encoded S2k count.  It is not possible to
+     encode it after it has been used because the encoding procedure
+     may round the value up.  */
+  s2k_count = get_standard_s2k_count_rfc4880 ();
   err = apply_protection (array, npkey, nskey, passphrase,
                           GCRY_CIPHER_AES, protect_iv, sizeof protect_iv,
                           3, GCRY_MD_SHA1, salt, s2k_count);
@@ -1066,7 +1062,7 @@ convert_to_openpgp (ctrl_t ctrl, gcry_sexp_t s_key, const char *passphrase,
       void *format_args_buf_ptr[1];
       int   format_args_buf_int[1];
       void *format_args[10+2];
-      size_t n;
+      unsigned int n;
       gcry_sexp_t tmpkey, tmpsexp = NULL;
 
       snprintf (countbuf, sizeof countbuf, "%lu", s2k_count);