aboutsummaryrefslogtreecommitdiffstats
path: root/g10/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/misc.c')
-rw-r--r--g10/misc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/g10/misc.c b/g10/misc.c
index 2a431b137..bd550dec6 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -630,6 +630,7 @@ openpgp_aead_test_algo (aead_algo_t algo)
case AEAD_ALGO_EAX:
case AEAD_ALGO_OCB:
+ case AEAD_ALGO_GCM:
return 0;
}
@@ -648,6 +649,7 @@ openpgp_aead_algo_name (aead_algo_t algo)
case AEAD_ALGO_NONE: break;
case AEAD_ALGO_EAX: return "EAX";
case AEAD_ALGO_OCB: return "OCB";
+ case AEAD_ALGO_GCM: return "GCM";
}
return "?";
@@ -674,6 +676,11 @@ openpgp_aead_algo_info (aead_algo_t algo, enum gcry_cipher_modes *r_mode,
*r_noncelen = 16;
break;
+ case AEAD_ALGO_GCM:
+ *r_mode = GCRY_CIPHER_MODE_GCM;
+ *r_noncelen = 12;
+ break;
+
default:
log_error ("unsupported AEAD algo %d\n", algo);
return gpg_error (GPG_ERR_INV_CIPHER_MODE);
@@ -1241,6 +1248,8 @@ string_to_aead_algo (const char *string)
result = 1;
else if (!ascii_strcasecmp (string, "OCB"))
result = 2;
+ else if (!ascii_strcasecmp (string, "GCM"))
+ result = 3;
else if ((string[0]=='A' || string[0]=='a'))
{
char *endptr;