Regutil

Från FriBID
Hoppa till navigeringHoppa till sök

Detta är implementerat (2011-04-18) och har testats på riktigt en gång mot Swedbank. Det finns säkert en del buggar, så det kanske inte fungerar rakt av med andra banker (eller ens på Swedbank).

Hämtning av e-legitimationer sker, som normalt vid skapande av certifikat, i två steg

Certifikatförfrågan[redigera]

Den base64 encodade strängen man får ut från första steget (se t.ex. [[1]]) är ett Cryptographic Message Syntax (PKCS#7) signedData meddelande som kapslar in de två certifikatbegäran. Meddelandet saknar signaturdel, men är väntat då det inte finns något certifikat att signera med ännu och certifikatbegäran i sig är signerad med privata nyckeln. PKCS#7 signedData är ett inkapslingsformat med 0 eller fler signaturer så det är inget konstigt.

OpenSSL stödjer inte denna form av PKCS#7 meddelanden för CSR, men du kan avkoda PKCS#7 meddelandet genom

 openssl asn1parse -inform der -in <filen> -dump -i

Första cert req går att få ut genom

 openssl asn1parse -inform der -in <der-fil> -dump -i -strparse 66 -out cert1.der

och kan sedan visas med

 openssl req -text -inform der -in cert1.der

Samma gäller för det andra certificatet med -strparse 552

Certifikathämtning[redigera]

Efter att certifikatförfrågan har skickats, skickar servern tillbaka certifikaten. Eftersom ett BankID alltid/oftast innehåller två certifikat så skickar servern också två anrop till metoden StoreCertificates('p7c', 'base64-kodat certifikat'). Se exemplet nedan (**A** och **B** innebär att raden finns med i det första respektive det andra certifikatet):

   0 3440: SEQUENCE {
   4    9: . OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)
         : . . (PKCS #7)
  15 3425: . [0] {
  19 3421: . . SEQUENCE {
  23    1: . . . INTEGER 1
  26   14: . . . SET {
  28   12: . . . . SEQUENCE {
  30    8: . . . . . OBJECT IDENTIFIER md5 (1 2 840 113549 2 5)
         : . . . . . . (RSADSI digestAlgorithm)
  40    0: . . . . . NULL
         : . . . . . }
         : . . . . }
  42   34: . . . SEQUENCE {
  44    9: . . . . OBJECT IDENTIFIER data (1 2 840 113549 1 7 1)
         : . . . . . (PKCS #7)
  55   21: . . . . [0] {
  57   19: . . . . . OCTET STRING 'intentionally empty'
         : . . . . . }
         : . . . . }
  78 2984: . . . [0] {
  82  984: . . . . SEQUENCE {
  86  704: . . . . . SEQUENCE {
  90    3: . . . . . . [0] {
  92    1: . . . . . . . INTEGER 2
         : . . . . . . . }
  95   17: . . . . . . INTEGER
         : . . . . . . . 00 CC... (17 byte)
 114   13: . . . . . . SEQUENCE {
 116    9: . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . . (PKCS #1)
 127    0: . . . . . . . NULL
         : . . . . . . . }
 129  103: . . . . . . SEQUENCE {
 131   11: . . . . . . . SET {
 133    9: . . . . . . . . SEQUENCE {
 135    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
 140    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
 144   27: . . . . . . . SET {
 146   25: . . . . . . . . SEQUENCE {
 148    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
 153   18: . . . . . . . . . UTF8String 'Swedbank AB (publ)'
         : . . . . . . . . . }
         : . . . . . . . . }
 173   21: . . . . . . . SET {
 175   19: . . . . . . . . SEQUENCE {
 177    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
 182   12: . . . . . . . . . PrintableString '165020177753'
         : . . . . . . . . . }
         : . . . . . . . . }
 196   36: . . . . . . . SET {
 198   34: . . . . . . . . SEQUENCE {
 200    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
 205   27: . . . . . . . . . UTF8String 'Swedbank Root CA for BankID'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
 234   30: . . . . . . SEQUENCE {
 236   13: . . . . . . . UTCTime 09/11/2006 09:00:17 GMT
 251   13: . . . . . . . UTCTime 01/06/2019 21:35:41 GMT
         : . . . . . . . }
 266  110: . . . . . . SEQUENCE {
 268   11: . . . . . . . SET {
 270    9: . . . . . . . . SEQUENCE {
 272    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
 277    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
 281   27: . . . . . . . SET {
 283   25: . . . . . . . . SEQUENCE {
 285    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
 290   18: . . . . . . . . . UTF8String 'Swedbank AB (publ)'
         : . . . . . . . . . }
         : . . . . . . . . }
 310   21: . . . . . . . SET {
 312   19: . . . . . . . . SEQUENCE {
 314    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
 319   12: . . . . . . . . . PrintableString '165020177753'
         : . . . . . . . . . }
         : . . . . . . . . }
 333   43: . . . . . . . SET {
 335   41: . . . . . . . . SEQUENCE {
 337    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
 342   34: . . . . . . . . . UTF8String 'Swedbank e-Customer CA1 for BankID'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
 378  290: . . . . . . SEQUENCE {
 382   13: . . . . . . . SEQUENCE {
 384    9: . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . rsaEncryption (1 2 840 113549 1 1 1)
         : . . . . . . . . . (PKCS #1)
 395    0: . . . . . . . . NULL
         : . . . . . . . . }
 397  271: . . . . . . . BIT STRING, encapsulates {
 402  266: . . . . . . . . SEQUENCE {
 406  257: . . . . . . . . . INTEGER
         : . . . . . . . . . 00 97... (257 byte)
 667    3: . . . . . . . . . INTEGER 65537
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
 672  120: . . . . . . [3] {
 674  118: . . . . . . . SEQUENCE {
 676   15: . . . . . . . . SEQUENCE {
 678    3: . . . . . . . . . OBJECT IDENTIFIER basicConstraints (2 5 29 19)
         : . . . . . . . . . . (X.509 extension)
 683    1: . . . . . . . . . BOOLEAN TRUE
 686    5: . . . . . . . . . OCTET STRING, encapsulates {
 688    3: . . . . . . . . . . SEQUENCE {
 690    1: . . . . . . . . . . . BOOLEAN TRUE
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
 693   19: . . . . . . . . SEQUENCE {
 695    3: . . . . . . . . . OBJECT IDENTIFIER certificatePolicies (2 5 29 32)
         : . . . . . . . . . . (X.509 extension)
 700   12: . . . . . . . . . OCTET STRING, encapsulates {
 702   10: . . . . . . . . . . SEQUENCE {
 704    8: . . . . . . . . . . . SEQUENCE {
 706    6: . . . . . . . . . . . . OBJECT IDENTIFIER '1 2 752 78 1 1'
         : . . . . . . . . . . . . }
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
 714   14: . . . . . . . . SEQUENCE {
 716    3: . . . . . . . . . OBJECT IDENTIFIER keyUsage (2 5 29 15)
         : . . . . . . . . . . (X.509 extension)
 721    1: . . . . . . . . . BOOLEAN TRUE
 724    4: . . . . . . . . . OCTET STRING, encapsulates {
 726    2: . . . . . . . . . . BIT STRING 1 unused bit
         : . . . . . . . . . . . '1100000'B
         : . . . . . . . . . . }
         : . . . . . . . . . }
 730   31: . . . . . . . . SEQUENCE {
 732    3: . . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . . authorityKeyIdentifier (2 5 29 35)
         : . . . . . . . . . . (X.509 extension)
 737   24: . . . . . . . . . OCTET STRING, encapsulates {
 739   22: . . . . . . . . . . SEQUENCE {
 741   20: . . . . . . . . . . . [0]
         : . . . . . . . . . B0 BF... (20 byte)
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
 763   29: . . . . . . . . SEQUENCE {
 765    3: . . . . . . . . . OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
         : . . . . . . . . . . (X.509 extension)
 770   22: . . . . . . . . . OCTET STRING, encapsulates {
 772   20: . . . . . . . . . . OCTET STRING
         : . . . . . . . . . 03 70... (20 byte)
         : . . . . . . . . . . }
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
         : . . . . . . }
 794   13: . . . . . SEQUENCE {
 796    9: . . . . . . OBJECT IDENTIFIER
         : . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . (PKCS #1)
 807    0: . . . . . . NULL
         : . . . . . . }
 809  257: . . . . . BIT STRING
         : . . . . . . 4E 87... (256 byte)
         : . . . . . }
1070  990: . . . . SEQUENCE {
1074  710: . . . . . SEQUENCE {
1078    3: . . . . . . [0] {
1080    1: . . . . . . . INTEGER 2
         : . . . . . . . }
1083   16: . . . . . . INTEGER
         : . . . . . . . 65 A7... (16 byte)
1101   13: . . . . . . SEQUENCE {
1103    9: . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . . (PKCS #1)
1114    0: . . . . . . . NULL
         : . . . . . . . }
1116  117: . . . . . . SEQUENCE {
1118   36: . . . . . . . SET {
1120   34: . . . . . . . . SEQUENCE {
1122    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
1127   27: . . . . . . . . . UTF8String 'Finansiell ID-Teknik BID AB'
         : . . . . . . . . . }
         : . . . . . . . . }
1156   31: . . . . . . . SET {
1158   29: . . . . . . . . SEQUENCE {
1160    3: . . . . . . . . . OBJECT IDENTIFIER organizationalUnitName (2 5 4 11)
         : . . . . . . . . . . (X.520 DN component)
1165   22: . . . . . . . . . UTF8String 'BankID Member Banks CA'
         : . . . . . . . . . }
         : . . . . . . . . }
1189   44: . . . . . . . SET {
1191   42: . . . . . . . . SEQUENCE {
1193    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
1198   35: . . . . . . . . . UTF8String 'BankID Root Certification Authority'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
1235   30: . . . . . . SEQUENCE {
1237   13: . . . . . . . UTCTime 07/11/2006 08:29:53 GMT
1252   13: . . . . . . . UTCTime 01/09/2019 22:04:41 GMT
         : . . . . . . . }
1267  103: . . . . . . SEQUENCE {
1269   11: . . . . . . . SET {
1271    9: . . . . . . . . SEQUENCE {
1273    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
1278    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
1282   27: . . . . . . . SET {
1284   25: . . . . . . . . SEQUENCE {
1286    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
1291   18: . . . . . . . . . UTF8String 'Swedbank AB (publ)'
         : . . . . . . . . . }
         : . . . . . . . . }
1311   21: . . . . . . . SET {
1313   19: . . . . . . . . SEQUENCE {
1315    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
1320   12: . . . . . . . . . PrintableString '165020177753'
         : . . . . . . . . . }
         : . . . . . . . . }
1334   36: . . . . . . . SET {
1336   34: . . . . . . . . SEQUENCE {
1338    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
1343   27: . . . . . . . . . UTF8String 'Swedbank Root CA for BankID'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
1372  290: . . . . . . SEQUENCE {
1376   13: . . . . . . . SEQUENCE {
1378    9: . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . rsaEncryption (1 2 840 113549 1 1 1)
         : . . . . . . . . . (PKCS #1)
1389    0: . . . . . . . . NULL
         : . . . . . . . . }
1391  271: . . . . . . . BIT STRING, encapsulates {
1396  266: . . . . . . . . SEQUENCE {
1400  257: . . . . . . . . . INTEGER
         : . . . . . . . . . 00 94... (257 byte)
1661    3: . . . . . . . . . INTEGER 65537
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
1666  120: . . . . . . [3] {
1668  118: . . . . . . . SEQUENCE {
1670   15: . . . . . . . . SEQUENCE {
1672    3: . . . . . . . . . OBJECT IDENTIFIER basicConstraints (2 5 29 19)
         : . . . . . . . . . . (X.509 extension)
1677    1: . . . . . . . . . BOOLEAN TRUE
1680    5: . . . . . . . . . OCTET STRING, encapsulates {
1682    3: . . . . . . . . . . SEQUENCE {
1684    1: . . . . . . . . . . . BOOLEAN TRUE
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
1687   19: . . . . . . . . SEQUENCE {
1689    3: . . . . . . . . . OBJECT IDENTIFIER certificatePolicies (2 5 29 32)
         : . . . . . . . . . . (X.509 extension)
1694   12: . . . . . . . . . OCTET STRING, encapsulates {
1696   10: . . . . . . . . . . SEQUENCE {
1698    8: . . . . . . . . . . . SEQUENCE {
1700    6: . . . . . . . . . . . . OBJECT IDENTIFIER '1 2 752 78 1 1'
         : . . . . . . . . . . . . }
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
1708   14: . . . . . . . . SEQUENCE {
1710    3: . . . . . . . . . OBJECT IDENTIFIER keyUsage (2 5 29 15)
         : . . . . . . . . . . (X.509 extension)
1715    1: . . . . . . . . . BOOLEAN TRUE
1718    4: . . . . . . . . . OCTET STRING, encapsulates {
1720    2: . . . . . . . . . . BIT STRING 1 unused bit
         : . . . . . . . . . . . '1100000'B
         : . . . . . . . . . . }
         : . . . . . . . . . }
1724   31: . . . . . . . . SEQUENCE {
1726    3: . . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . . authorityKeyIdentifier (2 5 29 35)
         : . . . . . . . . . . (X.509 extension)
1731   24: . . . . . . . . . OCTET STRING, encapsulates {
1733   22: . . . . . . . . . . SEQUENCE {
1735   20: . . . . . . . . . . . [0]
         : . . . . . . . . . 24 61... (20 byte)
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
1757   29: . . . . . . . . SEQUENCE {
1759    3: . . . . . . . . . OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
         : . . . . . . . . . . (X.509 extension)
1764   22: . . . . . . . . . OCTET STRING, encapsulates {
1766   20: . . . . . . . . . . OCTET STRING
         : . . . . . . . . . B0 BF... (20 byte)
         : . . . . . . . . . . }
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
         : . . . . . . }
1788   13: . . . . . SEQUENCE {
1790    9: . . . . . . OBJECT IDENTIFIER
         : . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . (PKCS #1)
1801    0: . . . . . . NULL
         : . . . . . . }
1803  257: . . . . . BIT STRING
         : . . . . . . 32 CF... (256 byte)
         : . . . . . }
2064  998: . . . . SEQUENCE {
2068  718: . . . . . SEQUENCE {
2072    3: . . . . . . [0] {
2074    1: . . . . . . . INTEGER 2
         : . . . . . . . }
**A**2077    8: . . . . . . INTEGER 6A B9... (8 byte)
**B**2077    8: . . . . . . INTEGER 6A 16... (8 byte)
2087   13: . . . . . . SEQUENCE {
2089    9: . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . . (PKCS #1)
2100    0: . . . . . . . NULL
         : . . . . . . . }
2102  110: . . . . . . SEQUENCE {
2104   11: . . . . . . . SET {
2106    9: . . . . . . . . SEQUENCE {
2108    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
2113    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
2117   27: . . . . . . . SET {
2119   25: . . . . . . . . SEQUENCE {
2121    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
2126   18: . . . . . . . . . UTF8String 'Swedbank AB (publ)'
         : . . . . . . . . . }
         : . . . . . . . . }
2146   21: . . . . . . . SET {
2148   19: . . . . . . . . SEQUENCE {
2150    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
2155   12: . . . . . . . . . PrintableString '165020177753'
         : . . . . . . . . . }
         : . . . . . . . . }
2169   43: . . . . . . . SET {
2171   41: . . . . . . . . SEQUENCE {
2173    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
2178   34: . . . . . . . . . UTF8String 'Swedbank e-Customer CA1 for BankID'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
2214   30: . . . . . . SEQUENCE {
2216   13: . . . . . . . UTCTime 14/08/2010 22:00:00 GMT  (c:a en dag innan legitimationen hämtades)
2231   13: . . . . . . . UTCTime 15/08/2011 21:59:59 GMT
         : . . . . . . . }
2246  215: . . . . . . SEQUENCE {
2249   11: . . . . . . . SET {
2251    9: . . . . . . . . SEQUENCE {
2253    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
2258    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
2262   27: . . . . . . . SET {
2264   25: . . . . . . . . SEQUENCE {
2266    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
2271   18: . . . . . . . . . UTF8String 'Swedbank AB (publ)'
         : . . . . . . . . . }
         : . . . . . . . . }
2291   22: . . . . . . . SET {
2293   20: . . . . . . . . SEQUENCE {
2295    3: . . . . . . . . . OBJECT IDENTIFIER surname (2 5 4 4)
         : . . . . . . . . . . (X.520 DN component)
2300   13: . . . . . . . . . UTF8String 'EFTERNAMN1 EFTERNAMN2'
         : . . . . . . . . . }
         : . . . . . . . . }
2315   26: . . . . . . . SET {
2317   24: . . . . . . . . SEQUENCE {
2319    3: . . . . . . . . . OBJECT IDENTIFIER givenName (2 5 4 42)
         : . . . . . . . . . . (X.520 DN component)
2324   17: . . . . . . . . . UTF8String 'NAMN MELLANNAMN'
         : . . . . . . . . . }
         : . . . . . . . . }
2343   21: . . . . . . . SET {
2345   19: . . . . . . . . SEQUENCE {
2347    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
2352   12: . . . . . . . . . PrintableString 'YYYYMMDDNNNN'
         : . . . . . . . . . }
         : . . . . . . . . }
2366   54: . . . . . . . SET {
2368   52: . . . . . . . . SEQUENCE {
2370    3: . . . . . . . . . OBJECT IDENTIFIER name (2 5 4 41)
         : . . . . . . . . . . (X.520 DN component)
2375   45: . . . . . . . . . UTF8String
         : . . . . . . . . . '(100815 22.04) FÖRSTA_FÖRNAMN SISTA_EFTERNAMN - BankID p.. fil'
         : . . . . . . . . . }
         : . . . . . . . . }
2422   40: . . . . . . . SET {
2424   38: . . . . . . . . SEQUENCE {
2426    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
2431   31: . . . . . . . . . UTF8String 'FÖRNAMN MELLANNAMN EFTERNAMN1 EFTERNAMN2'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
2464  159: . . . . . . SEQUENCE {
2467   13: . . . . . . . SEQUENCE {
2469    9: . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . rsaEncryption (1 2 840 113549 1 1 1)
         : . . . . . . . . . (PKCS #1)
2480    0: . . . . . . . . NULL
         : . . . . . . . . }
2482  141: . . . . . . . BIT STRING, encapsulates {
2486  137: . . . . . . . . SEQUENCE {
2489  129: . . . . . . . . . INTEGER
**A**         : . . . . . . . . . 00 D9... (129 byte)
**B**         : . . . . . . . . . 00 81... (129 byte)
2621    3: . . . . . . . . . INTEGER 65537
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
2626  161: . . . . . . [3] {
2629  158: . . . . . . . SEQUENCE {
2632   55: . . . . . . . . SEQUENCE {
2634    8: . . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . . authorityInfoAccess (1 3 6 1 5 5 7 1 1)
         : . . . . . . . . . . (PKIX private extension)
2644   43: . . . . . . . . . OCTET STRING, encapsulates {
2646   41: . . . . . . . . . . SEQUENCE {
2648   39: . . . . . . . . . . . SEQUENCE {
2650    8: . . . . . . . . . . . . OBJECT IDENTIFIER ocsp (1 3 6 1 5 5 7 48 1)
         : . . . . . . . . . . . . . (PKIX)
2660   27: . . . . . . . . . . . . [6] 'http://ocsp.pkiservices.com'
         : . . . . . . . . . . . . }
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
2689   19: . . . . . . . . SEQUENCE {
2691    3: . . . . . . . . . OBJECT IDENTIFIER certificatePolicies (2 5 29 32)
         : . . . . . . . . . . (X.509 extension)
2696   12: . . . . . . . . . OCTET STRING, encapsulates {
2698   10: . . . . . . . . . . SEQUENCE {
2700    8: . . . . . . . . . . . SEQUENCE {
2702    6: . . . . . . . . . . . . OBJECT IDENTIFIER '1 2 752 78 1 1'
         : . . . . . . . . . . . . }
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
2710   14: . . . . . . . . SEQUENCE {
2712    3: . . . . . . . . . OBJECT IDENTIFIER keyUsage (2 5 29 15)
         : . . . . . . . . . . (X.509 extension)
2717    1: . . . . . . . . . BOOLEAN TRUE
2720    4: . . . . . . . . . OCTET STRING, encapsulates {
**A**2722    2: . . . . . . . . . . BIT STRING 7 unused bits
**A**         : . . . . . . . . . . . '1'B (bit 0)
**B**2722    2: . . . . . . . . . . BIT STRING 6 unused bits
**B**         : . . . . . . . . . . . '10'B (bit 1)
         : . . . . . . . . . . }
         : . . . . . . . . . }
2726   29: . . . . . . . . SEQUENCE {
2728    3: . . . . . . . . . OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
         : . . . . . . . . . . (X.509 extension)
2733   22: . . . . . . . . . OCTET STRING, encapsulates {
2735   20: . . . . . . . . . . OCTET STRING
**A**         : . . . . . . . . . C1 A6... (20 byte)
**B**         : . . . . . . . . . CF E7... (20 byte)
         : . . . . . . . . . . }
         : . . . . . . . . . }
2757   31: . . . . . . . . SEQUENCE {
2759    3: . . . . . . . . . OBJECT IDENTIFIER
         : . . . . . . . . . . authorityKeyIdentifier (2 5 29 35)
         : . . . . . . . . . . (X.509 extension)
2764   24: . . . . . . . . . OCTET STRING, encapsulates {
2766   22: . . . . . . . . . . SEQUENCE {
2768   20: . . . . . . . . . . . [0]
         : . . . . . . . . . 03 70... (20 byte)
         : . . . . . . . . . . . }
         : . . . . . . . . . . }
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
         : . . . . . . }
2790   13: . . . . . SEQUENCE {
2792    9: . . . . . . OBJECT IDENTIFIER
         : . . . . . . . sha1withRSAEncryption (1 2 840 113549 1 1 5)
         : . . . . . . . (PKCS #1)
2803    0: . . . . . . NULL
         : . . . . . . }
2805  257: . . . . . BIT STRING
**A**         : . . . . . . 27 9E... (256 byte)
**B**         : . . . . . . 55 91... (256 byte)
         : . . . . . }
         : . . . . }
3066  374: . . . SET {
3070  370: . . . . SEQUENCE {
3074    1: . . . . . INTEGER 1
3077  114: . . . . . SEQUENCE {
3079  102: . . . . . . SEQUENCE {
3081   11: . . . . . . . SET {
3083    9: . . . . . . . . SEQUENCE {
3085    3: . . . . . . . . . OBJECT IDENTIFIER countryName (2 5 4 6)
         : . . . . . . . . . . (X.520 DN component)
3090    2: . . . . . . . . . PrintableString 'SE'
         : . . . . . . . . . }
         : . . . . . . . . }
3094   33: . . . . . . . SET {
3096   31: . . . . . . . . SEQUENCE {
3098    3: . . . . . . . . . OBJECT IDENTIFIER organizationName (2 5 4 10)
         : . . . . . . . . . . (X.520 DN component)
3103   24: . . . . . . . . . PrintableString 'Bankgirocentralen BGC AB'
         : . . . . . . . . . }
         : . . . . . . . . }
3129   20: . . . . . . . SET {
3131   18: . . . . . . . . SEQUENCE {
3133    3: . . . . . . . . . OBJECT IDENTIFIER serialNumber (2 5 4 5)
         : . . . . . . . . . . (X.520 DN component)
3138   11: . . . . . . . . . PrintableString '556047-3521'
         : . . . . . . . . . }
         : . . . . . . . . }
3151   30: . . . . . . . SET {
3153   28: . . . . . . . . SEQUENCE {
3155    3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3)
         : . . . . . . . . . . (X.520 DN component)
3160   21: . . . . . . . . . PrintableString 'BGC Administrative CA'
         : . . . . . . . . . }
         : . . . . . . . . }
         : . . . . . . . }
3183    8: . . . . . . INTEGER 2B 13... (8 byte)
         : . . . . . . }
3193   12: . . . . . SEQUENCE {
3195    8: . . . . . . OBJECT IDENTIFIER md5 (1 2 840 113549 2 5)
         : . . . . . . . (RSADSI digestAlgorithm)
3205    0: . . . . . . NULL
         : . . . . . . }
3207   89: . . . . . [0] {
3209   24: . . . . . . SEQUENCE {
3211    9: . . . . . . . OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3)
         : . . . . . . . . (PKCS #9)
3222   11: . . . . . . . SET {
3224    9: . . . . . . . . OBJECT IDENTIFIER data (1 2 840 113549 1 7 1)
         : . . . . . . . . . (PKCS #7)
         : . . . . . . . . }
         : . . . . . . . }
3235   28: . . . . . . SEQUENCE {
3237    9: . . . . . . . OBJECT IDENTIFIER signingTime (1 2 840 113549 1 9 5)
         : . . . . . . . . (PKCS #9)
3248   15: . . . . . . . SET {
3250   13: . . . . . . . . UTCTime 15/08/2010 xx:xx:xx GMT
         : . . . . . . . . }
         : . . . . . . . }
3265   31: . . . . . . SEQUENCE {
3267    9: . . . . . . . OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4)
         : . . . . . . . . (PKCS #9)
3278   18: . . . . . . . SET {
3280   16: . . . . . . . . OCTET STRING
         : . . . . . . . . . 95 60... (16 byte)
         : . . . . . . . . }
         : . . . . . . . }
         : . . . . . . }
3298   13: . . . . . SEQUENCE {
3300    9: . . . . . . OBJECT IDENTIFIER rsaEncryption (1 2 840 113549 1 1 1)
         : . . . . . . . (PKCS #1)
3311    0: . . . . . . NULL
         : . . . . . . }
3313  128: . . . . . OCTET STRING
         : . . . . . . 2B 2C... (128 byte)
         : . . . . . }
         : . . . . }
         : . . . }
         : . . }
         : . }

Med CSR blobbarna bortklipta blir strukturen som följer:

    0:d=0  hl=4 l=1004 cons: SEQUENCE
    4:d=1  hl=2 l=   9 prim:  OBJECT            :pkcs7-signedData
   15:d=1  hl=4 l= 989 cons:  cont [ 0 ]
   19:d=2  hl=4 l= 985 cons:   SEQUENCE
   23:d=3  hl=2 l=   1 prim:    INTEGER           :01
   26:d=3  hl=2 l=   0 cons:    SET
   28:d=3  hl=4 l= 974 cons:    SEQUENCE
   32:d=4  hl=2 l=   8 prim:     OBJECT            :id-cct-PKIData
   42:d=4  hl=4 l= 960 cons:     cont [ 0 ]
   46:d=5  hl=4 l= 956 cons:      SEQUENCE
   50:d=6  hl=2 l=   0 cons:       SEQUENCE
   52:d=6  hl=4 l= 913 cons:       SEQUENCE
   56:d=7  hl=4 l= 492 cons:        cont [ 0 ]
   60:d=8  hl=2 l=   4 prim:         INTEGER           :01000002
   66:d=8  hl=4 l= 482 cons:         CERTIFICATE SIGNING REQUEST 1
  552:d=7  hl=4 l= 413 cons:        cont [ 0 ]
  556:d=8  hl=2 l=   4 prim:         INTEGER           :01000003
  562:d=8  hl=4 l= 403 cons:         CERTIFICATE SIGNING REQUEST 2
  969:d=6  hl=2 l=   0 cons:       SEQUENCE
  971:d=6  hl=2 l=  33 cons:       SEQUENCE
  973:d=7  hl=2 l=  31 cons:        SEQUENCE
  975:d=8  hl=2 l=   4 prim:         INTEGER           :01000001
  981:d=8  hl=2 l=   7 prim:         OBJECT            :1.2.752.36.4.1.1
  990:d=8  hl=2 l=  14 prim:         IA5STRING         :Not Applicable
 1006:d=3  hl=2 l=   0 cons:    SET

vilket avkodat blir

0   PKCS#7 SignedData = {  (RFC5652)
23     CMSVersion = 1
26     digestAlgoritms = []
28     encapContentInfo = [
32       CMS PKIData = {   (RFC2797)
50         controlSequence = []
52         reqSequence = [
56           {
60             BodyPartId = 01000002
66             CERTIFICATE SIGNING REQUEST 1
             }
552          {
556            BodyPartId = 01000003
562            CERTIFICATE SIGNING REQUEST 2
             }
           ]
969        cmsSequence = []
971        otherMsgSequence = [
973          OtherMsg = {
975            BodyPartId = 01000001
981            otherMsgType = 1.2.752.36.4.1.1
990            otherMsgValue = "Not Applicable"
             }
           ]
         }
       ]
1006   signerInfos = []