aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-11-17 12:23:38 -0500
committerJack Lloyd <[email protected]>2016-11-17 12:23:38 -0500
commit2566610bc2a29035faef5b884caba8a3a049313b (patch)
tree73270ad85ee9b98c21f5c80572615c5c2d8017bf
parentc072fb0eca6748db9913e08811fef4b8168bac40 (diff)
Add OIDs for SHA-3 and SHA-3 signature algorithms
Also CCM OIDS, and SHA-384/SHA-512 DSA OIDs. All from NIST: http://csrc.nist.gov/groups/ST/crypto_apps_infra/csor/algorithms.html
-rw-r--r--src/build-data/oids.txt31
-rw-r--r--src/lib/asn1/oids.cpp48
2 files changed, 77 insertions, 2 deletions
diff --git a/src/build-data/oids.txt b/src/build-data/oids.txt
index a23adcb72..b59e0a05e 100644
--- a/src/build-data/oids.txt
+++ b/src/build-data/oids.txt
@@ -41,6 +41,10 @@
2.16.840.1.101.3.4.1.26 = AES-192/GCM
2.16.840.1.101.3.4.1.46 = AES-256/GCM
+2.16.840.1.101.3.4.1.7 = AES-128/CCM
+2.16.840.1.101.3.4.1.27 = AES-192/CCM
+2.16.840.1.101.3.4.1.47 = AES-256/CCM
+
1.3.6.1.4.1.25258.3.101 = Serpent/GCM
1.3.6.1.4.1.25258.3.102 = Twofish/GCM
@@ -56,11 +60,19 @@
1.3.6.1.4.1.11591.12.2 = Tiger(24,3)
1.3.14.3.2.26 = SHA-160
-2.16.840.1.101.3.4.2.4 = SHA-224
+
+# From NIST:
2.16.840.1.101.3.4.2.1 = SHA-256
2.16.840.1.101.3.4.2.2 = SHA-384
2.16.840.1.101.3.4.2.3 = SHA-512
+2.16.840.1.101.3.4.2.4 = SHA-224
2.16.840.1.101.3.4.2.6 = SHA-512-256
+2.16.840.1.101.3.4.2.7 = SHA-3(224)
+2.16.840.1.101.3.4.2.8 = SHA-3(256)
+2.16.840.1.101.3.4.2.9 = SHA-3(384)
+2.16.840.1.101.3.4.2.10 = SHA-3(512)
+2.16.840.1.101.3.4.2.11 = SHAKE-128
+2.16.840.1.101.3.4.2.12 = SHAKE-256
[mac]
# MACs
@@ -92,8 +104,25 @@
1.3.36.3.3.1.2 = RSA/EMSA3(RIPEMD-160)
1.2.840.10040.4.3 = DSA/EMSA1(SHA-160)
+
2.16.840.1.101.3.4.3.1 = DSA/EMSA1(SHA-224)
2.16.840.1.101.3.4.3.2 = DSA/EMSA1(SHA-256)
+2.16.840.1.101.3.4.3.3 = DSA/EMSA1(SHA-384)
+2.16.840.1.101.3.4.3.4 = DSA/EMSA1(SHA-512)
+2.16.840.1.101.3.4.3.5 = DSA/EMSA1(SHA-3(224))
+2.16.840.1.101.3.4.3.6 = DSA/EMSA1(SHA-3(256))
+2.16.840.1.101.3.4.3.7 = DSA/EMSA1(SHA-3(384))
+2.16.840.1.101.3.4.3.8 = DSA/EMSA1(SHA-3(512))
+
+2.16.840.1.101.3.4.3.9 = ECDSA/EMSA1(SHA-3(224))
+2.16.840.1.101.3.4.3.10 = ECDSA/EMSA1(SHA-3(256))
+2.16.840.1.101.3.4.3.11 = ECDSA/EMSA1(SHA-3(384))
+2.16.840.1.101.3.4.3.12 = ECDSA/EMSA1(SHA-3(512))
+
+2.16.840.1.101.3.4.3.13 = RSA/EMSA3(SHA-3(224))
+2.16.840.1.101.3.4.3.14 = RSA/EMSA3(SHA-3(256))
+2.16.840.1.101.3.4.3.15 = RSA/EMSA3(SHA-3(384))
+2.16.840.1.101.3.4.3.16 = RSA/EMSA3(SHA-3(512))
1.2.840.10045.4.1 = ECDSA/EMSA1(SHA-160)
1.2.840.10045.4.3.1 = ECDSA/EMSA1(SHA-224)
diff --git a/src/lib/asn1/oids.cpp b/src/lib/asn1/oids.cpp
index fb2aa0043..88752bc4d 100644
--- a/src/lib/asn1/oids.cpp
+++ b/src/lib/asn1/oids.cpp
@@ -1,7 +1,7 @@
/*
* OID maps
*
-* This file was automatically generated by src/scripts/oids.py on 2016-11-06
+* This file was automatically generated by ./src/scripts/oids.py on 2016-11-17
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
@@ -129,18 +129,41 @@ std::string lookup(const OID& oid)
if(oid_str == "2.16.840.1.101.3.4.1.22") return "AES-192/CBC";
if(oid_str == "2.16.840.1.101.3.4.1.25") return "KeyWrap.AES-192";
if(oid_str == "2.16.840.1.101.3.4.1.26") return "AES-192/GCM";
+ if(oid_str == "2.16.840.1.101.3.4.1.27") return "AES-192/CCM";
if(oid_str == "2.16.840.1.101.3.4.1.42") return "AES-256/CBC";
if(oid_str == "2.16.840.1.101.3.4.1.45") return "KeyWrap.AES-256";
if(oid_str == "2.16.840.1.101.3.4.1.46") return "AES-256/GCM";
+ if(oid_str == "2.16.840.1.101.3.4.1.47") return "AES-256/CCM";
if(oid_str == "2.16.840.1.101.3.4.1.5") return "KeyWrap.AES-128";
if(oid_str == "2.16.840.1.101.3.4.1.6") return "AES-128/GCM";
+ if(oid_str == "2.16.840.1.101.3.4.1.7") return "AES-128/CCM";
if(oid_str == "2.16.840.1.101.3.4.2.1") return "SHA-256";
+ if(oid_str == "2.16.840.1.101.3.4.2.10") return "SHA-3(512)";
+ if(oid_str == "2.16.840.1.101.3.4.2.11") return "SHAKE-128";
+ if(oid_str == "2.16.840.1.101.3.4.2.12") return "SHAKE-256";
if(oid_str == "2.16.840.1.101.3.4.2.2") return "SHA-384";
if(oid_str == "2.16.840.1.101.3.4.2.3") return "SHA-512";
if(oid_str == "2.16.840.1.101.3.4.2.4") return "SHA-224";
if(oid_str == "2.16.840.1.101.3.4.2.6") return "SHA-512-256";
+ if(oid_str == "2.16.840.1.101.3.4.2.7") return "SHA-3(224)";
+ if(oid_str == "2.16.840.1.101.3.4.2.8") return "SHA-3(256)";
+ if(oid_str == "2.16.840.1.101.3.4.2.9") return "SHA-3(384)";
if(oid_str == "2.16.840.1.101.3.4.3.1") return "DSA/EMSA1(SHA-224)";
+ if(oid_str == "2.16.840.1.101.3.4.3.10") return "ECDSA/EMSA1(SHA-3(256))";
+ if(oid_str == "2.16.840.1.101.3.4.3.11") return "ECDSA/EMSA1(SHA-3(384))";
+ if(oid_str == "2.16.840.1.101.3.4.3.12") return "ECDSA/EMSA1(SHA-3(512))";
+ if(oid_str == "2.16.840.1.101.3.4.3.13") return "RSA/EMSA3(SHA-3(224))";
+ if(oid_str == "2.16.840.1.101.3.4.3.14") return "RSA/EMSA3(SHA-3(256))";
+ if(oid_str == "2.16.840.1.101.3.4.3.15") return "RSA/EMSA3(SHA-3(384))";
+ if(oid_str == "2.16.840.1.101.3.4.3.16") return "RSA/EMSA3(SHA-3(512))";
if(oid_str == "2.16.840.1.101.3.4.3.2") return "DSA/EMSA1(SHA-256)";
+ if(oid_str == "2.16.840.1.101.3.4.3.3") return "DSA/EMSA1(SHA-384)";
+ if(oid_str == "2.16.840.1.101.3.4.3.4") return "DSA/EMSA1(SHA-512)";
+ if(oid_str == "2.16.840.1.101.3.4.3.5") return "DSA/EMSA1(SHA-3(224))";
+ if(oid_str == "2.16.840.1.101.3.4.3.6") return "DSA/EMSA1(SHA-3(256))";
+ if(oid_str == "2.16.840.1.101.3.4.3.7") return "DSA/EMSA1(SHA-3(384))";
+ if(oid_str == "2.16.840.1.101.3.4.3.8") return "DSA/EMSA1(SHA-3(512))";
+ if(oid_str == "2.16.840.1.101.3.4.3.9") return "ECDSA/EMSA1(SHA-3(224))";
if(oid_str == "2.5.29.14") return "X509v3.SubjectKeyIdentifier";
if(oid_str == "2.5.29.15") return "X509v3.KeyUsage";
if(oid_str == "2.5.29.17") return "X509v3.SubjectAlternativeName";
@@ -183,12 +206,15 @@ std::string lookup(const OID& oid)
OID lookup(const std::string& name)
{
if(name == "AES-128/CBC") return OID("2.16.840.1.101.3.4.1.2");
+ if(name == "AES-128/CCM") return OID("2.16.840.1.101.3.4.1.7");
if(name == "AES-128/GCM") return OID("2.16.840.1.101.3.4.1.6");
if(name == "AES-128/OCB") return OID("1.3.6.1.4.1.25258.3.2.1");
if(name == "AES-192/CBC") return OID("2.16.840.1.101.3.4.1.22");
+ if(name == "AES-192/CCM") return OID("2.16.840.1.101.3.4.1.27");
if(name == "AES-192/GCM") return OID("2.16.840.1.101.3.4.1.26");
if(name == "AES-192/OCB") return OID("1.3.6.1.4.1.25258.3.2.2");
if(name == "AES-256/CBC") return OID("2.16.840.1.101.3.4.1.42");
+ if(name == "AES-256/CCM") return OID("2.16.840.1.101.3.4.1.47");
if(name == "AES-256/GCM") return OID("2.16.840.1.101.3.4.1.46");
if(name == "AES-256/OCB") return OID("1.3.6.1.4.1.25258.3.2.3");
if(name == "CAST-128/CBC") return OID("1.2.840.113533.7.66.10");
@@ -200,11 +226,21 @@ OID lookup(const std::string& name)
if(name == "DSA/EMSA1(SHA-160)") return OID("1.2.840.10040.4.3");
if(name == "DSA/EMSA1(SHA-224)") return OID("2.16.840.1.101.3.4.3.1");
if(name == "DSA/EMSA1(SHA-256)") return OID("2.16.840.1.101.3.4.3.2");
+ if(name == "DSA/EMSA1(SHA-3(224))") return OID("2.16.840.1.101.3.4.3.5");
+ if(name == "DSA/EMSA1(SHA-3(256))") return OID("2.16.840.1.101.3.4.3.6");
+ if(name == "DSA/EMSA1(SHA-3(384))") return OID("2.16.840.1.101.3.4.3.7");
+ if(name == "DSA/EMSA1(SHA-3(512))") return OID("2.16.840.1.101.3.4.3.8");
+ if(name == "DSA/EMSA1(SHA-384)") return OID("2.16.840.1.101.3.4.3.3");
+ if(name == "DSA/EMSA1(SHA-512)") return OID("2.16.840.1.101.3.4.3.4");
if(name == "ECDH") return OID("1.3.132.1.12");
if(name == "ECDSA") return OID("1.2.840.10045.2.1");
if(name == "ECDSA/EMSA1(SHA-160)") return OID("1.2.840.10045.4.1");
if(name == "ECDSA/EMSA1(SHA-224)") return OID("1.2.840.10045.4.3.1");
if(name == "ECDSA/EMSA1(SHA-256)") return OID("1.2.840.10045.4.3.2");
+ if(name == "ECDSA/EMSA1(SHA-3(224))") return OID("2.16.840.1.101.3.4.3.9");
+ if(name == "ECDSA/EMSA1(SHA-3(256))") return OID("2.16.840.1.101.3.4.3.10");
+ if(name == "ECDSA/EMSA1(SHA-3(384))") return OID("2.16.840.1.101.3.4.3.11");
+ if(name == "ECDSA/EMSA1(SHA-3(512))") return OID("2.16.840.1.101.3.4.3.12");
if(name == "ECDSA/EMSA1(SHA-384)") return OID("1.2.840.10045.4.3.3");
if(name == "ECDSA/EMSA1(SHA-512)") return OID("1.2.840.10045.4.3.4");
if(name == "ECGDSA") return OID("1.3.36.3.3.2.5.2.1");
@@ -262,15 +298,25 @@ OID lookup(const std::string& name)
if(name == "RSA/EMSA3(RIPEMD-160)") return OID("1.3.36.3.3.1.2");
if(name == "RSA/EMSA3(SHA-160)") return OID("1.2.840.113549.1.1.5");
if(name == "RSA/EMSA3(SHA-256)") return OID("1.2.840.113549.1.1.11");
+ if(name == "RSA/EMSA3(SHA-3(224))") return OID("2.16.840.1.101.3.4.3.13");
+ if(name == "RSA/EMSA3(SHA-3(256))") return OID("2.16.840.1.101.3.4.3.14");
+ if(name == "RSA/EMSA3(SHA-3(384))") return OID("2.16.840.1.101.3.4.3.15");
+ if(name == "RSA/EMSA3(SHA-3(512))") return OID("2.16.840.1.101.3.4.3.16");
if(name == "RSA/EMSA3(SHA-384)") return OID("1.2.840.113549.1.1.12");
if(name == "RSA/EMSA3(SHA-512)") return OID("1.2.840.113549.1.1.13");
if(name == "SEED/CBC") return OID("1.2.410.200004.1.4");
if(name == "SHA-160") return OID("1.3.14.3.2.26");
if(name == "SHA-224") return OID("2.16.840.1.101.3.4.2.4");
if(name == "SHA-256") return OID("2.16.840.1.101.3.4.2.1");
+ if(name == "SHA-3(224)") return OID("2.16.840.1.101.3.4.2.7");
+ if(name == "SHA-3(256)") return OID("2.16.840.1.101.3.4.2.8");
+ if(name == "SHA-3(384)") return OID("2.16.840.1.101.3.4.2.9");
+ if(name == "SHA-3(512)") return OID("2.16.840.1.101.3.4.2.10");
if(name == "SHA-384") return OID("2.16.840.1.101.3.4.2.2");
if(name == "SHA-512") return OID("2.16.840.1.101.3.4.2.3");
if(name == "SHA-512-256") return OID("2.16.840.1.101.3.4.2.6");
+ if(name == "SHAKE-128") return OID("2.16.840.1.101.3.4.2.11");
+ if(name == "SHAKE-256") return OID("2.16.840.1.101.3.4.2.12");
if(name == "Serpent/CBC") return OID("1.3.6.1.4.1.25258.3.1");
if(name == "Serpent/GCM") return OID("1.3.6.1.4.1.25258.3.101");
if(name == "Serpent/OCB") return OID("1.3.6.1.4.1.25258.3.2.4");