Exemplo n.º 1
0
EC_Group::EC_Group(const OID& domain_oid)
   {
   const std::string pem = PEM_for_named_group(OIDS::lookup(domain_oid));

   if(pem == "")
      throw Lookup_Error("No ECC domain data for " + domain_oid.as_string());

   *this = EC_Group(pem);
   m_oid = domain_oid.as_string();
   }
Exemplo n.º 2
0
std::string lookup(const OID& oid)
   {
   const std::string oid_str = oid.as_string();
   if(oid_str == "1.0.14888.3.0.5") return "ECKCDSA";
   if(oid_str == "1.2.156.10197.1.301") return "sm2p256v1";
   if(oid_str == "1.2.156.10197.1.301.1") return "SM2_Sig";
   if(oid_str == "1.2.156.10197.1.301.2") return "SM2_Kex";
   if(oid_str == "1.2.156.10197.1.301.3") return "SM2_Enc";
   if(oid_str == "1.2.156.10197.1.401") return "SM3";
   if(oid_str == "1.2.156.10197.1.504") return "RSA/EMSA3(SM3)";
   if(oid_str == "1.2.250.1.223.101.256.1") return "frp256v1";
   if(oid_str == "1.2.410.200004.1.100.4.3") return "ECKCDSA/EMSA1(SHA-1)";
   if(oid_str == "1.2.410.200004.1.100.4.4") return "ECKCDSA/EMSA1(SHA-224)";
   if(oid_str == "1.2.410.200004.1.100.4.5") return "ECKCDSA/EMSA1(SHA-256)";
   if(oid_str == "1.2.410.200004.1.4") return "SEED/CBC";
   if(oid_str == "1.2.643.2.2.19") return "GOST-34.10";
   if(oid_str == "1.2.643.2.2.3") return "GOST-34.10/EMSA1(GOST-R-34.11-94)";
   if(oid_str == "1.2.643.2.2.35.1") return "gost_256A";
   if(oid_str == "1.2.643.2.2.36.0") return "gost_256A";
   if(oid_str == "1.2.643.7.1.1.2.2") return "Streebog-256";
   if(oid_str == "1.2.643.7.1.1.2.3") return "Streebog-512";
   if(oid_str == "1.2.840.10040.4.1") return "DSA";
   if(oid_str == "1.2.840.10040.4.3") return "DSA/EMSA1(SHA-160)";
   if(oid_str == "1.2.840.10045.2.1") return "ECDSA";
   if(oid_str == "1.2.840.10045.3.1.1") return "secp192r1";
   if(oid_str == "1.2.840.10045.3.1.2") return "x962_p192v2";
   if(oid_str == "1.2.840.10045.3.1.3") return "x962_p192v3";
   if(oid_str == "1.2.840.10045.3.1.4") return "x962_p239v1";
   if(oid_str == "1.2.840.10045.3.1.5") return "x962_p239v2";
   if(oid_str == "1.2.840.10045.3.1.6") return "x962_p239v3";
   if(oid_str == "1.2.840.10045.3.1.7") return "secp256r1";
   if(oid_str == "1.2.840.10045.4.1") return "ECDSA/EMSA1(SHA-160)";
   if(oid_str == "1.2.840.10045.4.3.1") return "ECDSA/EMSA1(SHA-224)";
   if(oid_str == "1.2.840.10045.4.3.2") return "ECDSA/EMSA1(SHA-256)";
   if(oid_str == "1.2.840.10045.4.3.3") return "ECDSA/EMSA1(SHA-384)";
   if(oid_str == "1.2.840.10045.4.3.4") return "ECDSA/EMSA1(SHA-512)";
   if(oid_str == "1.2.840.10046.2.1") return "DH";
   if(oid_str == "1.2.840.113533.7.66.10") return "CAST-128/CBC";
   if(oid_str == "1.2.840.113533.7.66.15") return "KeyWrap.CAST-128";
   if(oid_str == "1.2.840.113549.1.1.1") return "RSA";
   if(oid_str == "1.2.840.113549.1.1.10") return "RSA/EMSA4";
   if(oid_str == "1.2.840.113549.1.1.11") return "RSA/EMSA3(SHA-256)";
   if(oid_str == "1.2.840.113549.1.1.12") return "RSA/EMSA3(SHA-384)";
   if(oid_str == "1.2.840.113549.1.1.13") return "RSA/EMSA3(SHA-512)";
   if(oid_str == "1.2.840.113549.1.1.14") return "RSA/EMSA3(SHA-224)";
   if(oid_str == "1.2.840.113549.1.1.16") return "RSA/EMSA3(SHA-512-256)";
   if(oid_str == "1.2.840.113549.1.1.4") return "RSA/EMSA3(MD5)";
   if(oid_str == "1.2.840.113549.1.1.5") return "RSA/EMSA3(SHA-160)";
   if(oid_str == "1.2.840.113549.1.1.7") return "RSA/OAEP";
   if(oid_str == "1.2.840.113549.1.1.8") return "MGF1";
   if(oid_str == "1.2.840.113549.1.5.12") return "PKCS5.PBKDF2";
   if(oid_str == "1.2.840.113549.1.5.13") return "PBE-PKCS5v20";
   if(oid_str == "1.2.840.113549.1.9.1") return "PKCS9.EmailAddress";
   if(oid_str == "1.2.840.113549.1.9.14") return "PKCS9.ExtensionRequest";
   if(oid_str == "1.2.840.113549.1.9.16.3.6") return "KeyWrap.TripleDES";
   if(oid_str == "1.2.840.113549.1.9.16.3.7") return "KeyWrap.RC2";
   if(oid_str == "1.2.840.113549.1.9.16.3.8") return "Compression.Zlib";
   if(oid_str == "1.2.840.113549.1.9.2") return "PKCS9.UnstructuredName";
   if(oid_str == "1.2.840.113549.1.9.3") return "PKCS9.ContentType";
   if(oid_str == "1.2.840.113549.1.9.4") return "PKCS9.MessageDigest";
   if(oid_str == "1.2.840.113549.1.9.7") return "PKCS9.ChallengePassword";
   if(oid_str == "1.2.840.113549.2.10") return "HMAC(SHA-384)";
   if(oid_str == "1.2.840.113549.2.11") return "HMAC(SHA-512)";
   if(oid_str == "1.2.840.113549.2.5") return "MD5";
   if(oid_str == "1.2.840.113549.2.7") return "HMAC(SHA-160)";
   if(oid_str == "1.2.840.113549.2.8") return "HMAC(SHA-224)";
   if(oid_str == "1.2.840.113549.2.9") return "HMAC(SHA-256)";
   if(oid_str == "1.2.840.113549.3.2") return "RC2/CBC";
   if(oid_str == "1.2.840.113549.3.7") return "TripleDES/CBC";
   if(oid_str == "1.3.101.110") return "Curve25519";
   if(oid_str == "1.3.101.112") return "Ed25519";
   if(oid_str == "1.3.132.0.10") return "secp256k1";
   if(oid_str == "1.3.132.0.30") return "secp160r2";
   if(oid_str == "1.3.132.0.31") return "secp192k1";
   if(oid_str == "1.3.132.0.32") return "secp224k1";
   if(oid_str == "1.3.132.0.33") return "secp224r1";
   if(oid_str == "1.3.132.0.34") return "secp384r1";
   if(oid_str == "1.3.132.0.35") return "secp521r1";
   if(oid_str == "1.3.132.0.8") return "secp160r1";
   if(oid_str == "1.3.132.0.9") return "secp160k1";
   if(oid_str == "1.3.132.1.12") return "ECDH";
   if(oid_str == "1.3.14.3.2.26") return "SHA-160";
   if(oid_str == "1.3.14.3.2.7") return "DES/CBC";
   if(oid_str == "1.3.36.3.2.1") return "RIPEMD-160";
   if(oid_str == "1.3.36.3.3.1.2") return "RSA/EMSA3(RIPEMD-160)";
   if(oid_str == "1.3.36.3.3.2.5.2.1") return "ECGDSA";
   if(oid_str == "1.3.36.3.3.2.5.4.1") return "ECGDSA/EMSA1(RIPEMD-160)";
   if(oid_str == "1.3.36.3.3.2.5.4.2") return "ECGDSA/EMSA1(SHA-160)";
   if(oid_str == "1.3.36.3.3.2.5.4.3") return "ECGDSA/EMSA1(SHA-224)";
   if(oid_str == "1.3.36.3.3.2.5.4.4") return "ECGDSA/EMSA1(SHA-256)";
   if(oid_str == "1.3.36.3.3.2.5.4.5") return "ECGDSA/EMSA1(SHA-384)";
   if(oid_str == "1.3.36.3.3.2.5.4.6") return "ECGDSA/EMSA1(SHA-512)";
   if(oid_str == "1.3.36.3.3.2.8.1.1.1") return "brainpool160r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.11") return "brainpool384r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.13") return "brainpool512r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.3") return "brainpool192r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.5") return "brainpool224r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.7") return "brainpool256r1";
   if(oid_str == "1.3.36.3.3.2.8.1.1.9") return "brainpool320r1";
   if(oid_str == "1.3.6.1.4.1.11591.12.2") return "Tiger(24,3)";
   if(oid_str == "1.3.6.1.4.1.25258.1.3") return "McEliece";
   if(oid_str == "1.3.6.1.4.1.25258.1.5") return "XMSS";
   if(oid_str == "1.3.6.1.4.1.25258.1.6.1") return "GOST-34.10/EMSA1(SHA-256)";
   if(oid_str == "1.3.6.1.4.1.25258.3.1") return "Serpent/CBC";
   if(oid_str == "1.3.6.1.4.1.25258.3.101") return "Serpent/GCM";
   if(oid_str == "1.3.6.1.4.1.25258.3.102") return "Twofish/GCM";
   if(oid_str == "1.3.6.1.4.1.25258.3.2") return "Threefish-512/CBC";
   if(oid_str == "1.3.6.1.4.1.25258.3.2.1") return "AES-128/OCB";
   if(oid_str == "1.3.6.1.4.1.25258.3.2.2") return "AES-192/OCB";
   if(oid_str == "1.3.6.1.4.1.25258.3.2.3") return "AES-256/OCB";
   if(oid_str == "1.3.6.1.4.1.25258.3.2.4") return "Serpent/OCB";
   if(oid_str == "1.3.6.1.4.1.25258.3.2.5") return "Twofish/OCB";
   if(oid_str == "1.3.6.1.4.1.25258.3.3") return "Twofish/CBC";
   if(oid_str == "1.3.6.1.4.1.3029.1.2.1") return "ElGamal";
   if(oid_str == "1.3.6.1.4.1.311.20.2.2") return "Microsoft SmartcardLogon";
   if(oid_str == "1.3.6.1.4.1.8301.3.1.2.9.0.38") return "secp521r1";
   if(oid_str == "1.3.6.1.5.5.7.1.1") return "PKIX.AuthorityInformationAccess";
   if(oid_str == "1.3.6.1.5.5.7.3.1") return "PKIX.ServerAuth";
   if(oid_str == "1.3.6.1.5.5.7.3.2") return "PKIX.ClientAuth";
   if(oid_str == "1.3.6.1.5.5.7.3.3") return "PKIX.CodeSigning";
   if(oid_str == "1.3.6.1.5.5.7.3.4") return "PKIX.EmailProtection";
   if(oid_str == "1.3.6.1.5.5.7.3.5") return "PKIX.IPsecEndSystem";
   if(oid_str == "1.3.6.1.5.5.7.3.6") return "PKIX.IPsecTunnel";
   if(oid_str == "1.3.6.1.5.5.7.3.7") return "PKIX.IPsecUser";
   if(oid_str == "1.3.6.1.5.5.7.3.8") return "PKIX.TimeStamping";
   if(oid_str == "1.3.6.1.5.5.7.3.9") return "PKIX.OCSPSigning";
   if(oid_str == "1.3.6.1.5.5.7.48.1") return "PKIX.OCSP";
   if(oid_str == "1.3.6.1.5.5.7.48.1.1") return "PKIX.OCSP.BasicResponse";
   if(oid_str == "1.3.6.1.5.5.7.48.2") return "PKIX.CertificateAuthorityIssuers";
   if(oid_str == "1.3.6.1.5.5.7.8.5") return "PKIX.XMPPAddr";
   if(oid_str == "2.16.840.1.101.3.4.1.2") return "AES-128/CBC";
   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";
   if(oid_str == "2.5.29.18") return "X509v3.IssuerAlternativeName";
   if(oid_str == "2.5.29.19") return "X509v3.BasicConstraints";
   if(oid_str == "2.5.29.20") return "X509v3.CRLNumber";
   if(oid_str == "2.5.29.21") return "X509v3.ReasonCode";
   if(oid_str == "2.5.29.23") return "X509v3.HoldInstructionCode";
   if(oid_str == "2.5.29.24") return "X509v3.InvalidityDate";
   if(oid_str == "2.5.29.28") return "X509v3.CRLIssuingDistributionPoint";
   if(oid_str == "2.5.29.30") return "X509v3.NameConstraints";
   if(oid_str == "2.5.29.31") return "X509v3.CRLDistributionPoints";
   if(oid_str == "2.5.29.32") return "X509v3.CertificatePolicies";
   if(oid_str == "2.5.29.32.0") return "X509v3.AnyPolicy";
   if(oid_str == "2.5.29.35") return "X509v3.AuthorityKeyIdentifier";
   if(oid_str == "2.5.29.36") return "X509v3.PolicyConstraints";
   if(oid_str == "2.5.29.37") return "X509v3.ExtendedKeyUsage";
   if(oid_str == "2.5.4.10") return "X520.Organization";
   if(oid_str == "2.5.4.11") return "X520.OrganizationalUnit";
   if(oid_str == "2.5.4.12") return "X520.Title";
   if(oid_str == "2.5.4.3") return "X520.CommonName";
   if(oid_str == "2.5.4.4") return "X520.Surname";
   if(oid_str == "2.5.4.42") return "X520.GivenName";
   if(oid_str == "2.5.4.43") return "X520.Initials";
   if(oid_str == "2.5.4.44") return "X520.GenerationalQualifier";
   if(oid_str == "2.5.4.46") return "X520.DNQualifier";
   if(oid_str == "2.5.4.5") return "X520.SerialNumber";
   if(oid_str == "2.5.4.6") return "X520.Country";
   if(oid_str == "2.5.4.65") return "X520.Pseudonym";
   if(oid_str == "2.5.4.7") return "X520.Locality";
   if(oid_str == "2.5.4.8") return "X520.State";
   if(oid_str == "2.5.8.1.1") return "RSA";

#if defined(BOTAN_HOUSE_ECC_CURVE_NAME)
   if(oid_str == BOTAN_HOUSE_ECC_CURVE_OID) return BOTAN_HOUSE_ECC_CURVE_NAME;
#endif

   return std::string();
   }