1 package org.bouncycastle.asn1.bsi; 2 3 import org.bouncycastle.asn1.ASN1ObjectIdentifier; 4 5 /** 6 * See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf 7 */ 8 public interface BSIObjectIdentifiers 9 { 10 static final ASN1ObjectIdentifier bsi_de = new ASN1ObjectIdentifier("0.4.0.127.0.7"); 11 12 /* 0.4.0.127.0.7.1.1 */ 13 static final ASN1ObjectIdentifier id_ecc = bsi_de.branch("1.1"); 14 15 /* 0.4.0.127.0.7.1.1.4.1 */ 16 static final ASN1ObjectIdentifier ecdsa_plain_signatures = id_ecc.branch("4.1"); 17 18 /* 0.4.0.127.0.7.1.1.4.1.1 */ 19 static final ASN1ObjectIdentifier ecdsa_plain_SHA1 = ecdsa_plain_signatures.branch("1"); 20 21 /* 0.4.0.127.0.7.1.1.4.1.2 */ 22 static final ASN1ObjectIdentifier ecdsa_plain_SHA224 = ecdsa_plain_signatures.branch("2"); 23 24 /* 0.4.0.127.0.7.1.1.4.1.3 */ 25 static final ASN1ObjectIdentifier ecdsa_plain_SHA256 = ecdsa_plain_signatures.branch("3"); 26 27 /* 0.4.0.127.0.7.1.1.4.1.4 */ 28 static final ASN1ObjectIdentifier ecdsa_plain_SHA384 = ecdsa_plain_signatures.branch("4"); 29 30 /* 0.4.0.127.0.7.1.1.4.1.5 */ 31 static final ASN1ObjectIdentifier ecdsa_plain_SHA512 = ecdsa_plain_signatures.branch("5"); 32 33 /* 0.4.0.127.0.7.1.1.4.1.6 */ 34 static final ASN1ObjectIdentifier ecdsa_plain_RIPEMD160 = ecdsa_plain_signatures.branch("6"); 35 36 /* 0.4.0.127.0.7.1.1.4.1.8 */ 37 static final ASN1ObjectIdentifier ecdsa_plain_SHA3_224 = ecdsa_plain_signatures.branch("8"); 38 39 /* 0.4.0.127.0.7.1.1.4.1.9 */ 40 static final ASN1ObjectIdentifier ecdsa_plain_SHA3_256 = ecdsa_plain_signatures.branch("9"); 41 42 /* 0.4.0.127.0.7.1.1.4.1.10 */ 43 static final ASN1ObjectIdentifier ecdsa_plain_SHA3_384 = ecdsa_plain_signatures.branch("10"); 44 45 /* 0.4.0.127.0.7.1.1.4.1.11 */ 46 static final ASN1ObjectIdentifier ecdsa_plain_SHA3_512 = ecdsa_plain_signatures.branch("11"); 47 48 /** 0.4.0.127.0.7.1 */ 49 static final ASN1ObjectIdentifier algorithm = bsi_de.branch("1"); 50 51 static final ASN1ObjectIdentifier ecka_eg = id_ecc.branch("5.1"); 52 53 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1 */ 54 static final ASN1ObjectIdentifier ecka_eg_X963kdf = ecka_eg.branch("1"); 55 56 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 57 * with hash function SHA-1 58 * OID: 0.4.0.127.0.7.1.1.5.1.1.1 */ 59 static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA1 = ecka_eg_X963kdf.branch("1"); 60 61 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 62 * with hash function SHA224 63 * OID: 0.4.0.127.0.7.1.1.5.1.1.2 */ 64 static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA224 = ecka_eg_X963kdf.branch("2"); 65 66 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 67 * with hash function SHA256 68 * OID: 0.4.0.127.0.7.1.1.5.1.1.3 */ 69 static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA256 = ecka_eg_X963kdf.branch("3"); 70 71 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 72 * with hash function SHA384 73 * OID: 0.4.0.127.0.7.1.1.5.1.1.4 */ 74 static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA384 = ecka_eg_X963kdf.branch("4"); 75 76 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 77 * with hash function SHA512 78 * OID: 0.4.0.127.0.7.1.1.5.1.1.5 */ 79 static final ASN1ObjectIdentifier ecka_eg_X963kdf_SHA512 = ecka_eg_X963kdf.branch("5"); 80 81 /** ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 82 * with hash function RIPEMD160 83 * OID: 0.4.0.127.0.7.1.1.5.1.1.6 */ 84 static final ASN1ObjectIdentifier ecka_eg_X963kdf_RIPEMD160 = ecka_eg_X963kdf.branch("6"); 85 86 /** 87 * Key Derivation Function for Session Keys 88 */ 89 static final ASN1ObjectIdentifier ecka_eg_SessionKDF = ecka_eg.branch("2"); 90 91 static final ASN1ObjectIdentifier ecka_eg_SessionKDF_3DES = ecka_eg_SessionKDF.branch("1"); 92 static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES128 = ecka_eg_SessionKDF.branch("2"); 93 static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES192 = ecka_eg_SessionKDF.branch("3"); 94 static final ASN1ObjectIdentifier ecka_eg_SessionKDF_AES256 = ecka_eg_SessionKDF.branch("4"); 95 96 /** AES encryption (CBC) and authentication (CMAC) 97 * OID: 0.4.0.127.0.7.1.x */ 98 //TODO: replace "1" with correct OID 99 //static final ASN1ObjectIdentifier aes_cbc_cmac = algorithm.branch("1"); 100 101 /** AES encryption (CBC) and authentication (CMAC) with 128 bit 102 * OID: 0.4.0.127.0.7.1.x.y1 */ 103 //TODO: replace "1" with correct OID 104 //static final ASN1ObjectIdentifier id_aes128_CBC_CMAC = aes_cbc_cmac.branch("1"); 105 106 107 /** AES encryption (CBC) and authentication (CMAC) with 192 bit 108 * OID: 0.4.0.127.0.7.1.x.y2 */ 109 //TODO: replace "1" with correct OID 110 //static final ASN1ObjectIdentifier id_aes192_CBC_CMAC = aes_cbc_cmac.branch("1"); 111 112 /** AES encryption (CBC) and authentication (CMAC) with 256 bit 113 * OID: 0.4.0.127.0.7.1.x.y3 */ 114 //TODO: replace "1" with correct OID 115 //static final ASN1ObjectIdentifier id_aes256_CBC_CMAC = aes_cbc_cmac.branch("1"); 116 } 117