...

Source file src/golang.org/x/crypto/x509roots/nss/parser_test.go

Documentation: golang.org/x/crypto/x509roots/nss

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package nss
     6  
     7  import (
     8  	"crypto/x509"
     9  	"encoding/pem"
    10  	"reflect"
    11  	"sort"
    12  	"strings"
    13  	"testing"
    14  	"time"
    15  )
    16  
    17  func mustParse(b []byte) *x509.Certificate {
    18  	block, _ := pem.Decode(b)
    19  	cert, err := x509.ParseCertificate(block.Bytes)
    20  	if err != nil {
    21  		panic(err)
    22  	}
    23  	return cert
    24  }
    25  
    26  var testComodo = mustParse([]byte(`-----BEGIN CERTIFICATE-----
    27  MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
    28  MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
    29  GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
    30  YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
    31  MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
    32  BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
    33  GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
    34  ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
    35  BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
    36  3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
    37  YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
    38  rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
    39  ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
    40  oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
    41  MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
    42  QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
    43  b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
    44  AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
    45  GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
    46  Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
    47  G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
    48  l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
    49  smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
    50  -----END CERTIFICATE-----`))
    51  
    52  var testTrustcor = mustParse([]byte(`-----BEGIN CERTIFICATE-----
    53  MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV
    54  BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
    55  IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
    56  dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig
    57  Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk
    58  MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg
    59  Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD
    60  VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy
    61  dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
    62  AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+
    63  QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq
    64  1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp
    65  2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK
    66  DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape
    67  az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF
    68  3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88
    69  oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM
    70  g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3
    71  mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
    72  8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd
    73  BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U
    74  nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw
    75  DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX
    76  dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+
    77  MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL
    78  /V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX
    79  CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa
    80  ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW
    81  2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7
    82  N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3
    83  Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB
    84  As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp
    85  5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu
    86  1uwJ
    87  -----END CERTIFICATE-----`))
    88  
    89  func TestParseCertData(t *testing.T) {
    90  	trustcorDistrust, err := time.Parse("060102150405Z0700", "221130000000Z")
    91  	if err != nil {
    92  		t.Fatalf("failed to parse distrust time: %s", err)
    93  	}
    94  
    95  	for _, tc := range []struct {
    96  		name   string
    97  		data   string
    98  		output []*Certificate
    99  		err    string
   100  	}{
   101  		{
   102  			name: "valid certs",
   103  			data: validCertdata,
   104  			output: []*Certificate{
   105  				&Certificate{X509: testComodo},
   106  				&Certificate{X509: testTrustcor, Constraints: []Constraint{DistrustAfter(trustcorDistrust)}},
   107  			},
   108  		},
   109  		{
   110  			name: "cert obj, no trust obj",
   111  			data: certNoTrust,
   112  			err:  "missing trust object for certificate with SHA1 hash: d1eb23a46d17d68fd92564c2f1f1601764d8e349",
   113  		},
   114  		{
   115  			name: "trust obj, no cert obj",
   116  			data: trustNoCert,
   117  		},
   118  		{
   119  			name: "missing certificate der",
   120  			data: missingCertificateOctal,
   121  			err:  "malformed CKO_CERTIFICATE object",
   122  		},
   123  		{
   124  			name: "untrusted cert (cert)",
   125  			data: untrustedCertCert,
   126  		},
   127  		{
   128  			name: "untrusted cert (trust)",
   129  			data: untrustedCertTrust,
   130  		},
   131  		{
   132  			name: "malformed class",
   133  			data: malformedClass,
   134  			err:  "malformed CKA_CLASS",
   135  		},
   136  		{
   137  			name: "malformed cert octal",
   138  			data: malformedOctalCert,
   139  			err:  "invalid syntax",
   140  		},
   141  		{
   142  			name: "malformed hash octal",
   143  			data: malformedOctalhash,
   144  			err:  "invalid syntax",
   145  		},
   146  		{
   147  			name: "malformed distrust octal",
   148  			data: malformedOctalDistrust,
   149  			err:  "invalid syntax",
   150  		},
   151  	} {
   152  		t.Run(tc.name, func(t *testing.T) {
   153  			r := strings.NewReader(tc.data)
   154  			nc, err := Parse(r)
   155  			if err != nil {
   156  				if tc.err == "" {
   157  					t.Fatalf("unexpected error: %s", err)
   158  				} else if tc.err != err.Error() {
   159  					t.Fatalf("unexpected error: want %q, got %q", tc.err, err)
   160  				}
   161  			} else if tc.err != "" {
   162  				t.Fatal("expected error, got nil")
   163  			}
   164  
   165  			if len(tc.output) != len(nc) {
   166  				t.Fatalf("unexpected number of parsed certs: want %d, got %d", len(tc.output), len(nc))
   167  			}
   168  
   169  			// sort so we can check equality
   170  			sort.Slice(nc, func(i, j int) bool {
   171  				return nc[i].X509.Subject.String() < nc[j].X509.Subject.String()
   172  			})
   173  
   174  			if !reflect.DeepEqual(tc.output, nc) {
   175  				t.Fatal("unexpected results")
   176  			}
   177  		})
   178  	}
   179  }
   180  
   181  const validCertdata = `#
   182  # Certificate "Comodo AAA Services root"
   183  #
   184  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   185  # Serial Number: 1 (0x1)
   186  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   187  # Not Valid Before: Thu Jan 01 00:00:00 2004
   188  # Not Valid After : Sun Dec 31 23:59:59 2028
   189  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   190  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   191  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   192  CKA_TOKEN CK_BBOOL CK_TRUE
   193  CKA_PRIVATE CK_BBOOL CK_FALSE
   194  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   195  CKA_LABEL UTF8 "Comodo AAA Services root"
   196  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   197  CKA_SUBJECT MULTILINE_OCTAL
   198  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   199  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   200  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   201  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   202  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   203  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   204  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   205  \143\141\164\145\040\123\145\162\166\151\143\145\163
   206  END
   207  CKA_ID UTF8 "0"
   208  CKA_ISSUER MULTILINE_OCTAL
   209  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   210  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   211  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   212  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   213  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   214  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   215  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   216  \143\141\164\145\040\123\145\162\166\151\143\145\163
   217  END
   218  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   219  \002\001\001
   220  END
   221  CKA_VALUE MULTILINE_OCTAL
   222  \060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001
   223  \060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
   224  \173\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
   225  \060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
   226  \040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
   227  \003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
   228  \030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
   229  \101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125
   230  \004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143
   231  \141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015
   232  \060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062
   233  \070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013
   234  \060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006
   235  \003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141
   236  \156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004
   237  \007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003
   238  \125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114
   239  \151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014
   240  \030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145
   241  \040\123\145\162\166\151\143\145\163\060\202\001\042\060\015\006
   242  \011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017
   243  \000\060\202\001\012\002\202\001\001\000\276\100\235\364\156\341
   244  \352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052
   245  \376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232
   246  \006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013
   247  \123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232
   248  \022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336
   249  \334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204
   250  \047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110
   251  \260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170
   252  \142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366
   253  \366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314
   254  \326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121
   255  \254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057
   256  \237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230
   257  \265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046
   258  \173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330
   259  \336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243
   260  \201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024
   261  \240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177
   262  \320\060\244\264\060\016\006\003\125\035\017\001\001\377\004\004
   263  \003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005
   264  \060\003\001\001\377\060\173\006\003\125\035\037\004\164\060\162
   265  \060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143
   266  \162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057
   267  \101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145
   268  \162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062
   269  \206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155
   270  \157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151
   271  \146\151\143\141\164\145\123\145\162\166\151\143\145\163\056\143
   272  \162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005
   273  \000\003\202\001\001\000\010\126\374\002\360\233\350\377\244\372
   274  \326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274
   275  \024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120
   276  \030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277
   277  \375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112
   278  \363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363
   279  \106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302
   280  \016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067
   281  \125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366
   282  \033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003
   283  \154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217
   284  \372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042
   285  \227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242
   286  \156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362
   287  \343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267
   288  \262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237
   289  \225\351\066\226\230\156
   290  END
   291  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
   292  CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
   293  CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
   294  
   295  # Trust for "Comodo AAA Services root"
   296  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   297  # Serial Number: 1 (0x1)
   298  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   299  # Not Valid Before: Thu Jan 01 00:00:00 2004
   300  # Not Valid After : Sun Dec 31 23:59:59 2028
   301  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   302  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   303  CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
   304  CKA_TOKEN CK_BBOOL CK_TRUE
   305  CKA_PRIVATE CK_BBOOL CK_FALSE
   306  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   307  CKA_LABEL UTF8 "Comodo AAA Services root"
   308  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
   309  \321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027
   310  \144\330\343\111
   311  END
   312  CKA_CERT_MD5_HASH MULTILINE_OCTAL
   313  \111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
   314  END
   315  CKA_ISSUER MULTILINE_OCTAL
   316  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   317  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   318  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   319  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   320  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   321  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   322  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   323  \143\141\164\145\040\123\145\162\166\151\143\145\163
   324  END
   325  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   326  \002\001\001
   327  END
   328  CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   329  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   330  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   331  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
   332  
   333  #
   334  # Certificate "TrustCor RootCert CA-2"
   335  #
   336  # Issuer: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
   337  # Serial Number:25:a1:df:ca:33:cb:59:02
   338  # Subject: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
   339  # Not Valid Before: Thu Feb 04 12:32:23 2016
   340  # Not Valid After : Sun Dec 31 17:26:39 2034
   341  # Fingerprint (SHA-256): 07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
   342  # Fingerprint (SHA1): B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
   343  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   344  CKA_TOKEN CK_BBOOL CK_TRUE
   345  CKA_PRIVATE CK_BBOOL CK_FALSE
   346  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   347  CKA_LABEL UTF8 "TrustCor RootCert CA-2"
   348  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   349  CKA_SUBJECT MULTILINE_OCTAL
   350  \060\201\244\061\013\060\011\006\003\125\004\006\023\002\120\101
   351  \061\017\060\015\006\003\125\004\010\014\006\120\141\156\141\155
   352  \141\061\024\060\022\006\003\125\004\007\014\013\120\141\156\141
   353  \155\141\040\103\151\164\171\061\044\060\042\006\003\125\004\012
   354  \014\033\124\162\165\163\164\103\157\162\040\123\171\163\164\145
   355  \155\163\040\123\056\040\144\145\040\122\056\114\056\061\047\060
   356  \045\006\003\125\004\013\014\036\124\162\165\163\164\103\157\162
   357  \040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164
   358  \150\157\162\151\164\171\061\037\060\035\006\003\125\004\003\014
   359  \026\124\162\165\163\164\103\157\162\040\122\157\157\164\103\145
   360  \162\164\040\103\101\055\062
   361  END
   362  CKA_ID UTF8 "0"
   363  CKA_ISSUER MULTILINE_OCTAL
   364  \060\201\244\061\013\060\011\006\003\125\004\006\023\002\120\101
   365  \061\017\060\015\006\003\125\004\010\014\006\120\141\156\141\155
   366  \141\061\024\060\022\006\003\125\004\007\014\013\120\141\156\141
   367  \155\141\040\103\151\164\171\061\044\060\042\006\003\125\004\012
   368  \014\033\124\162\165\163\164\103\157\162\040\123\171\163\164\145
   369  \155\163\040\123\056\040\144\145\040\122\056\114\056\061\047\060
   370  \045\006\003\125\004\013\014\036\124\162\165\163\164\103\157\162
   371  \040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164
   372  \150\157\162\151\164\171\061\037\060\035\006\003\125\004\003\014
   373  \026\124\162\165\163\164\103\157\162\040\122\157\157\164\103\145
   374  \162\164\040\103\101\055\062
   375  END
   376  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   377  \002\010\045\241\337\312\063\313\131\002
   378  END
   379  CKA_VALUE MULTILINE_OCTAL
   380  \060\202\006\057\060\202\004\027\240\003\002\001\002\002\010\045
   381  \241\337\312\063\313\131\002\060\015\006\011\052\206\110\206\367
   382  \015\001\001\013\005\000\060\201\244\061\013\060\011\006\003\125
   383  \004\006\023\002\120\101\061\017\060\015\006\003\125\004\010\014
   384  \006\120\141\156\141\155\141\061\024\060\022\006\003\125\004\007
   385  \014\013\120\141\156\141\155\141\040\103\151\164\171\061\044\060
   386  \042\006\003\125\004\012\014\033\124\162\165\163\164\103\157\162
   387  \040\123\171\163\164\145\155\163\040\123\056\040\144\145\040\122
   388  \056\114\056\061\047\060\045\006\003\125\004\013\014\036\124\162
   389  \165\163\164\103\157\162\040\103\145\162\164\151\146\151\143\141
   390  \164\145\040\101\165\164\150\157\162\151\164\171\061\037\060\035
   391  \006\003\125\004\003\014\026\124\162\165\163\164\103\157\162\040
   392  \122\157\157\164\103\145\162\164\040\103\101\055\062\060\036\027
   393  \015\061\066\060\062\060\064\061\062\063\062\062\063\132\027\015
   394  \063\064\061\062\063\061\061\067\062\066\063\071\132\060\201\244
   395  \061\013\060\011\006\003\125\004\006\023\002\120\101\061\017\060
   396  \015\006\003\125\004\010\014\006\120\141\156\141\155\141\061\024
   397  \060\022\006\003\125\004\007\014\013\120\141\156\141\155\141\040
   398  \103\151\164\171\061\044\060\042\006\003\125\004\012\014\033\124
   399  \162\165\163\164\103\157\162\040\123\171\163\164\145\155\163\040
   400  \123\056\040\144\145\040\122\056\114\056\061\047\060\045\006\003
   401  \125\004\013\014\036\124\162\165\163\164\103\157\162\040\103\145
   402  \162\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162
   403  \151\164\171\061\037\060\035\006\003\125\004\003\014\026\124\162
   404  \165\163\164\103\157\162\040\122\157\157\164\103\145\162\164\040
   405  \103\101\055\062\060\202\002\042\060\015\006\011\052\206\110\206
   406  \367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012
   407  \002\202\002\001\000\247\040\156\302\052\242\142\044\225\220\166
   408  \310\070\176\200\322\253\301\233\145\005\224\364\301\012\020\325
   409  \002\254\355\237\223\307\207\310\260\047\053\102\014\075\012\076
   410  \101\132\236\165\335\215\312\340\233\354\150\062\244\151\222\150
   411  \214\013\201\016\126\240\076\032\335\054\045\024\202\057\227\323
   412  \144\106\364\124\251\334\072\124\055\061\053\231\202\362\331\052
   413  \327\357\161\000\270\061\244\276\172\044\007\303\102\040\362\212
   414  \324\222\004\033\145\126\114\154\324\373\266\141\132\107\043\264
   415  \330\151\264\267\072\320\164\074\014\165\241\214\116\166\241\351
   416  \333\052\245\073\372\316\260\377\176\152\050\375\047\034\310\261
   417  \351\051\361\127\156\144\264\320\301\025\155\016\276\056\016\106
   418  \310\136\364\121\376\357\016\143\072\073\161\272\317\157\131\312
   419  \014\343\233\135\111\270\114\342\127\261\230\212\102\127\234\166
   420  \357\357\275\321\150\250\322\364\011\273\167\065\276\045\202\010
   421  \304\026\054\104\040\126\251\104\021\167\357\135\264\035\252\136
   422  \153\076\213\062\366\007\057\127\004\222\312\365\376\235\302\351
   423  \350\263\216\114\113\002\061\331\344\074\110\202\047\367\030\202
   424  \166\110\072\161\261\023\241\071\325\056\305\064\302\035\142\205
   425  \337\003\376\115\364\257\075\337\134\133\215\372\160\341\245\176
   426  \047\307\206\056\152\217\022\306\204\136\103\121\120\234\031\233
   427  \170\346\374\366\355\107\176\173\075\146\357\023\023\210\137\074
   428  \241\143\373\371\254\207\065\237\363\202\236\244\077\012\234\061
   429  \151\213\231\244\210\112\216\156\146\115\357\026\304\017\171\050
   430  \041\140\015\205\026\175\327\124\070\361\222\126\375\265\063\114
   431  \203\334\327\020\237\113\375\306\370\102\275\272\174\163\002\340
   432  \377\175\315\133\341\324\254\141\173\127\325\112\173\133\324\205
   433  \130\047\135\277\370\053\140\254\240\046\256\024\041\047\306\167
   434  \232\063\200\074\136\106\077\367\303\261\243\206\063\306\350\136
   435  \015\271\065\054\252\106\301\205\002\165\200\240\353\044\373\025
   436  \252\344\147\177\156\167\077\364\004\212\057\174\173\343\027\141
   437  \360\335\011\251\040\310\276\011\244\320\176\104\303\262\060\112
   438  \070\252\251\354\030\232\007\202\053\333\270\234\030\255\332\340
   439  \106\027\254\317\135\002\003\001\000\001\243\143\060\141\060\035
   440  \006\003\125\035\016\004\026\004\024\331\376\041\100\156\224\236
   441  \274\233\075\234\175\230\040\031\345\214\060\142\262\060\037\006
   442  \003\125\035\043\004\030\060\026\200\024\331\376\041\100\156\224
   443  \236\274\233\075\234\175\230\040\031\345\214\060\142\262\060\017
   444  \006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060
   445  \016\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060
   446  \015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202
   447  \002\001\000\236\105\236\014\073\266\357\341\072\310\174\321\000
   448  \075\317\342\352\006\265\262\072\273\006\113\150\172\320\043\227
   449  \164\247\054\360\010\330\171\132\327\132\204\212\330\022\232\033
   450  \331\175\134\115\160\305\245\371\253\345\243\211\211\335\001\372
   451  \354\335\371\351\222\227\333\260\106\102\363\323\142\252\225\376
   452  \061\147\024\151\130\220\012\252\013\356\067\043\307\120\121\264
   453  \365\176\236\343\173\367\344\314\102\062\055\111\014\313\377\111
   454  \014\233\036\064\375\156\156\226\212\171\003\266\157\333\011\313
   455  \375\137\145\024\067\341\070\365\363\141\026\130\344\265\155\015
   456  \013\004\033\077\120\055\177\263\307\172\032\026\200\140\370\212
   457  \037\351\033\052\306\371\272\001\032\151\277\322\130\307\124\127
   458  \010\217\341\071\140\167\113\254\131\204\032\210\361\335\313\117
   459  \170\327\347\341\063\055\374\356\101\372\040\260\276\313\367\070
   460  \224\300\341\320\205\017\273\355\054\163\253\355\376\222\166\032
   461  \144\177\133\015\063\011\007\063\173\006\077\021\244\134\160\074
   462  \205\300\317\343\220\250\203\167\372\333\346\305\214\150\147\020
   463  \147\245\122\055\360\304\231\217\177\277\321\153\342\265\107\326
   464  \331\320\205\231\115\224\233\017\113\215\356\000\132\107\035\021
   465  \003\254\101\030\257\207\267\157\014\072\217\312\317\334\003\301
   466  \242\011\310\345\375\200\136\310\140\102\001\033\032\123\132\273
   467  \067\246\267\274\272\204\351\036\154\032\324\144\332\324\103\376
   468  \223\213\113\362\054\171\026\020\324\223\013\210\217\241\330\206
   469  \024\106\221\107\233\050\044\357\127\122\116\134\102\234\252\367
   470  \111\354\047\350\100\036\263\246\211\042\162\234\365\015\063\264
   471  \130\243\060\073\335\324\152\124\223\276\032\115\363\223\224\367
   472  \374\204\013\077\204\040\134\064\003\104\305\332\255\274\012\301
   473  \002\317\036\345\224\331\363\216\133\330\114\360\235\354\141\027
   474  \273\024\062\124\014\002\051\223\036\222\206\366\177\357\347\222
   475  \005\016\131\335\231\010\056\056\372\234\000\122\323\305\146\051
   476  \344\247\227\104\244\016\050\201\023\065\305\366\157\144\346\101
   477  \304\325\057\314\064\105\045\317\101\000\226\075\112\056\302\226
   478  \230\117\116\112\234\227\267\333\037\222\062\310\377\017\121\156
   479  \326\354\011
   480  END
   481  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
   482  # For Server Distrust After: Wed Nov 30 00:00:00 2022
   483  CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
   484  \062\062\061\061\063\060\060\060\060\060\060\060\132
   485  END
   486  # For Email Distrust After: Wed Nov 30 00:00:00 2022
   487  CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
   488  \062\062\061\061\063\060\060\060\060\060\060\060\132
   489  END
   490  
   491  
   492  # Trust for "TrustCor RootCert CA-2"
   493  # Issuer: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
   494  # Serial Number:25:a1:df:ca:33:cb:59:02
   495  # Subject: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
   496  # Not Valid Before: Thu Feb 04 12:32:23 2016
   497  # Not Valid After : Sun Dec 31 17:26:39 2034
   498  # Fingerprint (SHA-256): 07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
   499  # Fingerprint (SHA1): B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
   500  CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
   501  CKA_TOKEN CK_BBOOL CK_TRUE
   502  CKA_PRIVATE CK_BBOOL CK_FALSE
   503  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   504  CKA_LABEL UTF8 "TrustCor RootCert CA-2"
   505  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
   506  \270\276\155\313\126\361\125\271\143\324\022\312\116\006\064\307
   507  \224\262\034\300
   508  END
   509  CKA_CERT_MD5_HASH MULTILINE_OCTAL
   510  \242\341\370\030\013\272\105\325\307\101\052\273\067\122\105\144
   511  END
   512  CKA_ISSUER MULTILINE_OCTAL
   513  \060\201\244\061\013\060\011\006\003\125\004\006\023\002\120\101
   514  \061\017\060\015\006\003\125\004\010\014\006\120\141\156\141\155
   515  \141\061\024\060\022\006\003\125\004\007\014\013\120\141\156\141
   516  \155\141\040\103\151\164\171\061\044\060\042\006\003\125\004\012
   517  \014\033\124\162\165\163\164\103\157\162\040\123\171\163\164\145
   518  \155\163\040\123\056\040\144\145\040\122\056\114\056\061\047\060
   519  \045\006\003\125\004\013\014\036\124\162\165\163\164\103\157\162
   520  \040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164
   521  \150\157\162\151\164\171\061\037\060\035\006\003\125\004\003\014
   522  \026\124\162\165\163\164\103\157\162\040\122\157\157\164\103\145
   523  \162\164\040\103\101\055\062
   524  END
   525  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   526  \002\010\045\241\337\312\063\313\131\002
   527  END
   528  CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   529  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   530  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   531  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
   532  `
   533  
   534  const trustNoCert = `CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
   535  CKA_TOKEN CK_BBOOL CK_TRUE
   536  CKA_PRIVATE CK_BBOOL CK_FALSE
   537  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   538  CKA_LABEL UTF8 "Comodo AAA Services root"
   539  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
   540  \321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027
   541  \144\330\343\111
   542  END
   543  CKA_CERT_MD5_HASH MULTILINE_OCTAL
   544  \111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
   545  END
   546  CKA_ISSUER MULTILINE_OCTAL
   547  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   548  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   549  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   550  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   551  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   552  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   553  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   554  \143\141\164\145\040\123\145\162\166\151\143\145\163
   555  END
   556  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   557  \002\001\001
   558  END
   559  CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   560  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   561  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   562  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE`
   563  
   564  const certNoTrust = `CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   565  CKA_TOKEN CK_BBOOL CK_TRUE
   566  CKA_PRIVATE CK_BBOOL CK_FALSE
   567  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   568  CKA_LABEL UTF8 "Comodo AAA Services root"
   569  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   570  CKA_SUBJECT MULTILINE_OCTAL
   571  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   572  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   573  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   574  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   575  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   576  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   577  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   578  \143\141\164\145\040\123\145\162\166\151\143\145\163
   579  END
   580  CKA_ID UTF8 "0"
   581  CKA_ISSUER MULTILINE_OCTAL
   582  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   583  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   584  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   585  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   586  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   587  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   588  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   589  \143\141\164\145\040\123\145\162\166\151\143\145\163
   590  END
   591  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   592  \002\001\001
   593  END
   594  CKA_VALUE MULTILINE_OCTAL
   595  \060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001
   596  \060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
   597  \173\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
   598  \060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
   599  \040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
   600  \003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
   601  \030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
   602  \101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125
   603  \004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143
   604  \141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015
   605  \060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062
   606  \070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013
   607  \060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006
   608  \003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141
   609  \156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004
   610  \007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003
   611  \125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114
   612  \151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014
   613  \030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145
   614  \040\123\145\162\166\151\143\145\163\060\202\001\042\060\015\006
   615  \011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017
   616  \000\060\202\001\012\002\202\001\001\000\276\100\235\364\156\341
   617  \352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052
   618  \376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232
   619  \006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013
   620  \123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232
   621  \022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336
   622  \334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204
   623  \047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110
   624  \260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170
   625  \142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366
   626  \366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314
   627  \326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121
   628  \254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057
   629  \237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230
   630  \265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046
   631  \173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330
   632  \336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243
   633  \201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024
   634  \240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177
   635  \320\060\244\264\060\016\006\003\125\035\017\001\001\377\004\004
   636  \003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005
   637  \060\003\001\001\377\060\173\006\003\125\035\037\004\164\060\162
   638  \060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143
   639  \162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057
   640  \101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145
   641  \162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062
   642  \206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155
   643  \157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151
   644  \146\151\143\141\164\145\123\145\162\166\151\143\145\163\056\143
   645  \162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005
   646  \000\003\202\001\001\000\010\126\374\002\360\233\350\377\244\372
   647  \326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274
   648  \024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120
   649  \030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277
   650  \375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112
   651  \363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363
   652  \106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302
   653  \016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067
   654  \125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366
   655  \033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003
   656  \154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217
   657  \372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042
   658  \227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242
   659  \156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362
   660  \343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267
   661  \262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237
   662  \225\351\066\226\230\156
   663  END
   664  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
   665  CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
   666  CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE`
   667  
   668  const missingCertificateOctal = `CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE`
   669  
   670  const untrustedCertCert = `#
   671  # Certificate "Comodo AAA Services root"
   672  #
   673  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   674  # Serial Number: 1 (0x1)
   675  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   676  # Not Valid Before: Thu Jan 01 00:00:00 2004
   677  # Not Valid After : Sun Dec 31 23:59:59 2028
   678  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   679  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   680  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   681  CKA_TOKEN CK_BBOOL CK_TRUE
   682  CKA_PRIVATE CK_BBOOL CK_FALSE
   683  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   684  CKA_LABEL UTF8 "Comodo AAA Services root"
   685  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   686  CKA_SUBJECT MULTILINE_OCTAL
   687  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   688  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   689  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   690  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   691  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   692  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   693  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   694  \143\141\164\145\040\123\145\162\166\151\143\145\163
   695  END
   696  CKA_ID UTF8 "0"
   697  CKA_ISSUER MULTILINE_OCTAL
   698  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   699  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   700  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   701  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   702  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   703  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   704  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   705  \143\141\164\145\040\123\145\162\166\151\143\145\163
   706  END
   707  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   708  \002\001\001
   709  END
   710  CKA_VALUE MULTILINE_OCTAL
   711  \060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001
   712  \060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
   713  \173\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
   714  \060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
   715  \040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
   716  \003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
   717  \030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
   718  \101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125
   719  \004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143
   720  \141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015
   721  \060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062
   722  \070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013
   723  \060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006
   724  \003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141
   725  \156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004
   726  \007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003
   727  \125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114
   728  \151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014
   729  \030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145
   730  \040\123\145\162\166\151\143\145\163\060\202\001\042\060\015\006
   731  \011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017
   732  \000\060\202\001\012\002\202\001\001\000\276\100\235\364\156\341
   733  \352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052
   734  \376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232
   735  \006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013
   736  \123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232
   737  \022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336
   738  \334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204
   739  \047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110
   740  \260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170
   741  \142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366
   742  \366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314
   743  \326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121
   744  \254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057
   745  \237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230
   746  \265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046
   747  \173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330
   748  \336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243
   749  \201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024
   750  \240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177
   751  \320\060\244\264\060\016\006\003\125\035\017\001\001\377\004\004
   752  \003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005
   753  \060\003\001\001\377\060\173\006\003\125\035\037\004\164\060\162
   754  \060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143
   755  \162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057
   756  \101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145
   757  \162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062
   758  \206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155
   759  \157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151
   760  \146\151\143\141\164\145\123\145\162\166\151\143\145\163\056\143
   761  \162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005
   762  \000\003\202\001\001\000\010\126\374\002\360\233\350\377\244\372
   763  \326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274
   764  \024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120
   765  \030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277
   766  \375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112
   767  \363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363
   768  \106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302
   769  \016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067
   770  \125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366
   771  \033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003
   772  \154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217
   773  \372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042
   774  \227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242
   775  \156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362
   776  \343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267
   777  \262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237
   778  \225\351\066\226\230\156
   779  END
   780  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_FALSE
   781  CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
   782  CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
   783  
   784  # Trust for "Comodo AAA Services root"
   785  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   786  # Serial Number: 1 (0x1)
   787  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   788  # Not Valid Before: Thu Jan 01 00:00:00 2004
   789  # Not Valid After : Sun Dec 31 23:59:59 2028
   790  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   791  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   792  CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
   793  CKA_TOKEN CK_BBOOL CK_TRUE
   794  CKA_PRIVATE CK_BBOOL CK_FALSE
   795  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   796  CKA_LABEL UTF8 "Comodo AAA Services root"
   797  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
   798  \321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027
   799  \144\330\343\111
   800  END
   801  CKA_CERT_MD5_HASH MULTILINE_OCTAL
   802  \111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
   803  END
   804  CKA_ISSUER MULTILINE_OCTAL
   805  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   806  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   807  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   808  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   809  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   810  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   811  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   812  \143\141\164\145\040\123\145\162\166\151\143\145\163
   813  END
   814  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   815  \002\001\001
   816  END
   817  CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   818  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
   819  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   820  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE`
   821  
   822  const untrustedCertTrust = `#
   823  # Certificate "Comodo AAA Services root"
   824  #
   825  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   826  # Serial Number: 1 (0x1)
   827  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   828  # Not Valid Before: Thu Jan 01 00:00:00 2004
   829  # Not Valid After : Sun Dec 31 23:59:59 2028
   830  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   831  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   832  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   833  CKA_TOKEN CK_BBOOL CK_TRUE
   834  CKA_PRIVATE CK_BBOOL CK_FALSE
   835  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   836  CKA_LABEL UTF8 "Comodo AAA Services root"
   837  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   838  CKA_SUBJECT MULTILINE_OCTAL
   839  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   840  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   841  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   842  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   843  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   844  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   845  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   846  \143\141\164\145\040\123\145\162\166\151\143\145\163
   847  END
   848  CKA_ID UTF8 "0"
   849  CKA_ISSUER MULTILINE_OCTAL
   850  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   851  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   852  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   853  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   854  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   855  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   856  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   857  \143\141\164\145\040\123\145\162\166\151\143\145\163
   858  END
   859  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   860  \002\001\001
   861  END
   862  CKA_VALUE MULTILINE_OCTAL
   863  \060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001
   864  \060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
   865  \173\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
   866  \060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
   867  \040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
   868  \003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
   869  \030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
   870  \101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125
   871  \004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143
   872  \141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015
   873  \060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062
   874  \070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013
   875  \060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006
   876  \003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141
   877  \156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004
   878  \007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003
   879  \125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114
   880  \151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014
   881  \030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145
   882  \040\123\145\162\166\151\143\145\163\060\202\001\042\060\015\006
   883  \011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017
   884  \000\060\202\001\012\002\202\001\001\000\276\100\235\364\156\341
   885  \352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052
   886  \376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232
   887  \006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013
   888  \123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232
   889  \022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336
   890  \334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204
   891  \047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110
   892  \260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170
   893  \142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366
   894  \366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314
   895  \326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121
   896  \254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057
   897  \237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230
   898  \265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046
   899  \173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330
   900  \336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243
   901  \201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024
   902  \240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177
   903  \320\060\244\264\060\016\006\003\125\035\017\001\001\377\004\004
   904  \003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005
   905  \060\003\001\001\377\060\173\006\003\125\035\037\004\164\060\162
   906  \060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143
   907  \162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057
   908  \101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145
   909  \162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062
   910  \206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155
   911  \157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151
   912  \146\151\143\141\164\145\123\145\162\166\151\143\145\163\056\143
   913  \162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005
   914  \000\003\202\001\001\000\010\126\374\002\360\233\350\377\244\372
   915  \326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274
   916  \024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120
   917  \030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277
   918  \375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112
   919  \363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363
   920  \106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302
   921  \016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067
   922  \125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366
   923  \033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003
   924  \154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217
   925  \372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042
   926  \227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242
   927  \156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362
   928  \343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267
   929  \262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237
   930  \225\351\066\226\230\156
   931  END
   932  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
   933  CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
   934  CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE
   935  
   936  # Trust for "Comodo AAA Services root"
   937  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   938  # Serial Number: 1 (0x1)
   939  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   940  # Not Valid Before: Thu Jan 01 00:00:00 2004
   941  # Not Valid After : Sun Dec 31 23:59:59 2028
   942  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   943  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   944  CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
   945  CKA_TOKEN CK_BBOOL CK_TRUE
   946  CKA_PRIVATE CK_BBOOL CK_FALSE
   947  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   948  CKA_LABEL UTF8 "Comodo AAA Services root"
   949  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
   950  \321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027
   951  \144\330\343\111
   952  END
   953  CKA_CERT_MD5_HASH MULTILINE_OCTAL
   954  \111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
   955  END
   956  CKA_ISSUER MULTILINE_OCTAL
   957  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   958  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   959  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   960  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   961  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   962  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   963  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
   964  \143\141\164\145\040\123\145\162\166\151\143\145\163
   965  END
   966  CKA_SERIAL_NUMBER MULTILINE_OCTAL
   967  \002\001\001
   968  END
   969  CKA_TRUST_SERVER_AUTH CK_TRUST 
   970  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   971  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
   972  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE`
   973  
   974  const malformedClass = `CKA_CLASS`
   975  
   976  const malformedOctalCert = `#
   977  # Certificate "Comodo AAA Services root"
   978  #
   979  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   980  # Serial Number: 1 (0x1)
   981  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
   982  # Not Valid Before: Thu Jan 01 00:00:00 2004
   983  # Not Valid After : Sun Dec 31 23:59:59 2028
   984  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
   985  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
   986  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
   987  CKA_TOKEN CK_BBOOL CK_TRUE
   988  CKA_PRIVATE CK_BBOOL CK_FALSE
   989  CKA_MODIFIABLE CK_BBOOL CK_FALSE
   990  CKA_LABEL UTF8 "Comodo AAA Services root"
   991  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
   992  CKA_SUBJECT MULTILINE_OCTAL
   993  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
   994  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
   995  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
   996  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
   997  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
   998  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
   999  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
  1000  \143\141\164\145\040\123\145\162\166\151\143\145\163
  1001  END
  1002  CKA_ID UTF8 "0"
  1003  CKA_ISSUER MULTILINE_OCTAL
  1004  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
  1005  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
  1006  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
  1007  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
  1008  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
  1009  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
  1010  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
  1011  \143\141\164\145\040\123\145\162\166\151\143\145\163
  1012  END
  1013  CKA_SERIAL_NUMBER MULTILINE_OCTAL
  1014  \002\001\001
  1015  END
  1016  CKA_VALUE MULTILINE_OCTAL
  1017  hello\xxxxxxx
  1018  END
  1019  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
  1020  CKA_NSS_SERVER_DISTRUST_AFTER CK_BBOOL CK_FALSE
  1021  CKA_NSS_EMAIL_DISTRUST_AFTER CK_BBOOL CK_FALSE`
  1022  
  1023  const malformedOctalhash = `# Trust for "Comodo AAA Services root"
  1024  # Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
  1025  # Serial Number: 1 (0x1)
  1026  # Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB
  1027  # Not Valid Before: Thu Jan 01 00:00:00 2004
  1028  # Not Valid After : Sun Dec 31 23:59:59 2028
  1029  # Fingerprint (SHA-256): D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
  1030  # Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
  1031  CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
  1032  CKA_TOKEN CK_BBOOL CK_TRUE
  1033  CKA_PRIVATE CK_BBOOL CK_FALSE
  1034  CKA_MODIFIABLE CK_BBOOL CK_FALSE
  1035  CKA_LABEL UTF8 "Comodo AAA Services root"
  1036  CKA_CERT_SHA1_HASH MULTILINE_OCTAL
  1037  \xxxxx
  1038  END
  1039  CKA_CERT_MD5_HASH MULTILINE_OCTAL
  1040  \111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
  1041  END
  1042  CKA_ISSUER MULTILINE_OCTAL
  1043  \060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
  1044  \033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
  1045  \162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
  1046  \006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
  1047  \060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
  1048  \103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
  1049  \125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
  1050  \143\141\164\145\040\123\145\162\166\151\143\145\163
  1051  END
  1052  CKA_SERIAL_NUMBER MULTILINE_OCTAL
  1053  \002\001\001
  1054  END
  1055  CKA_TRUST_SERVER_AUTH CK_TRUST 
  1056  CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
  1057  CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
  1058  CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE`
  1059  
  1060  const malformedOctalDistrust = `#
  1061  # Certificate "TrustCor RootCert CA-2"
  1062  #
  1063  # Issuer: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
  1064  # Serial Number:25:a1:df:ca:33:cb:59:02
  1065  # Subject: CN=TrustCor RootCert CA-2,OU=TrustCor Certificate Authority,O=TrustCor Systems S. de R.L.,L=Panama City,ST=Panama,C=PA
  1066  # Not Valid Before: Thu Feb 04 12:32:23 2016
  1067  # Not Valid After : Sun Dec 31 17:26:39 2034
  1068  # Fingerprint (SHA-256): 07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
  1069  # Fingerprint (SHA1): B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
  1070  CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
  1071  CKA_TOKEN CK_BBOOL CK_TRUE
  1072  CKA_PRIVATE CK_BBOOL CK_FALSE
  1073  CKA_MODIFIABLE CK_BBOOL CK_FALSE
  1074  CKA_LABEL UTF8 "TrustCor RootCert CA-2"
  1075  CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
  1076  CKA_SUBJECT MULTILINE_OCTAL
  1077  \060\201\244\061\013\060\011\006\003\125\004\006\023\002\120\101
  1078  \061\017\060\015\006\003\125\004\010\014\006\120\141\156\141\155
  1079  \141\061\024\060\022\006\003\125\004\007\014\013\120\141\156\141
  1080  \155\141\040\103\151\164\171\061\044\060\042\006\003\125\004\012
  1081  \014\033\124\162\165\163\164\103\157\162\040\123\171\163\164\145
  1082  \155\163\040\123\056\040\144\145\040\122\056\114\056\061\047\060
  1083  \045\006\003\125\004\013\014\036\124\162\165\163\164\103\157\162
  1084  \040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164
  1085  \150\157\162\151\164\171\061\037\060\035\006\003\125\004\003\014
  1086  \026\124\162\165\163\164\103\157\162\040\122\157\157\164\103\145
  1087  \162\164\040\103\101\055\062
  1088  END
  1089  CKA_ID UTF8 "0"
  1090  CKA_ISSUER MULTILINE_OCTAL
  1091  \060\201\244\061\013\060\011\006\003\125\004\006\023\002\120\101
  1092  \061\017\060\015\006\003\125\004\010\014\006\120\141\156\141\155
  1093  \141\061\024\060\022\006\003\125\004\007\014\013\120\141\156\141
  1094  \155\141\040\103\151\164\171\061\044\060\042\006\003\125\004\012
  1095  \014\033\124\162\165\163\164\103\157\162\040\123\171\163\164\145
  1096  \155\163\040\123\056\040\144\145\040\122\056\114\056\061\047\060
  1097  \045\006\003\125\004\013\014\036\124\162\165\163\164\103\157\162
  1098  \040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164
  1099  \150\157\162\151\164\171\061\037\060\035\006\003\125\004\003\014
  1100  \026\124\162\165\163\164\103\157\162\040\122\157\157\164\103\145
  1101  \162\164\040\103\101\055\062
  1102  END
  1103  CKA_SERIAL_NUMBER MULTILINE_OCTAL
  1104  \002\010\045\241\337\312\063\313\131\002
  1105  END
  1106  CKA_VALUE MULTILINE_OCTAL
  1107  \060\202\006\057\060\202\004\027\240\003\002\001\002\002\010\045
  1108  \241\337\312\063\313\131\002\060\015\006\011\052\206\110\206\367
  1109  \015\001\001\013\005\000\060\201\244\061\013\060\011\006\003\125
  1110  \004\006\023\002\120\101\061\017\060\015\006\003\125\004\010\014
  1111  \006\120\141\156\141\155\141\061\024\060\022\006\003\125\004\007
  1112  \014\013\120\141\156\141\155\141\040\103\151\164\171\061\044\060
  1113  \042\006\003\125\004\012\014\033\124\162\165\163\164\103\157\162
  1114  \040\123\171\163\164\145\155\163\040\123\056\040\144\145\040\122
  1115  \056\114\056\061\047\060\045\006\003\125\004\013\014\036\124\162
  1116  \165\163\164\103\157\162\040\103\145\162\164\151\146\151\143\141
  1117  \164\145\040\101\165\164\150\157\162\151\164\171\061\037\060\035
  1118  \006\003\125\004\003\014\026\124\162\165\163\164\103\157\162\040
  1119  \122\157\157\164\103\145\162\164\040\103\101\055\062\060\036\027
  1120  \015\061\066\060\062\060\064\061\062\063\062\062\063\132\027\015
  1121  \063\064\061\062\063\061\061\067\062\066\063\071\132\060\201\244
  1122  \061\013\060\011\006\003\125\004\006\023\002\120\101\061\017\060
  1123  \015\006\003\125\004\010\014\006\120\141\156\141\155\141\061\024
  1124  \060\022\006\003\125\004\007\014\013\120\141\156\141\155\141\040
  1125  \103\151\164\171\061\044\060\042\006\003\125\004\012\014\033\124
  1126  \162\165\163\164\103\157\162\040\123\171\163\164\145\155\163\040
  1127  \123\056\040\144\145\040\122\056\114\056\061\047\060\045\006\003
  1128  \125\004\013\014\036\124\162\165\163\164\103\157\162\040\103\145
  1129  \162\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162
  1130  \151\164\171\061\037\060\035\006\003\125\004\003\014\026\124\162
  1131  \165\163\164\103\157\162\040\122\157\157\164\103\145\162\164\040
  1132  \103\101\055\062\060\202\002\042\060\015\006\011\052\206\110\206
  1133  \367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012
  1134  \002\202\002\001\000\247\040\156\302\052\242\142\044\225\220\166
  1135  \310\070\176\200\322\253\301\233\145\005\224\364\301\012\020\325
  1136  \002\254\355\237\223\307\207\310\260\047\053\102\014\075\012\076
  1137  \101\132\236\165\335\215\312\340\233\354\150\062\244\151\222\150
  1138  \214\013\201\016\126\240\076\032\335\054\045\024\202\057\227\323
  1139  \144\106\364\124\251\334\072\124\055\061\053\231\202\362\331\052
  1140  \327\357\161\000\270\061\244\276\172\044\007\303\102\040\362\212
  1141  \324\222\004\033\145\126\114\154\324\373\266\141\132\107\043\264
  1142  \330\151\264\267\072\320\164\074\014\165\241\214\116\166\241\351
  1143  \333\052\245\073\372\316\260\377\176\152\050\375\047\034\310\261
  1144  \351\051\361\127\156\144\264\320\301\025\155\016\276\056\016\106
  1145  \310\136\364\121\376\357\016\143\072\073\161\272\317\157\131\312
  1146  \014\343\233\135\111\270\114\342\127\261\230\212\102\127\234\166
  1147  \357\357\275\321\150\250\322\364\011\273\167\065\276\045\202\010
  1148  \304\026\054\104\040\126\251\104\021\167\357\135\264\035\252\136
  1149  \153\076\213\062\366\007\057\127\004\222\312\365\376\235\302\351
  1150  \350\263\216\114\113\002\061\331\344\074\110\202\047\367\030\202
  1151  \166\110\072\161\261\023\241\071\325\056\305\064\302\035\142\205
  1152  \337\003\376\115\364\257\075\337\134\133\215\372\160\341\245\176
  1153  \047\307\206\056\152\217\022\306\204\136\103\121\120\234\031\233
  1154  \170\346\374\366\355\107\176\173\075\146\357\023\023\210\137\074
  1155  \241\143\373\371\254\207\065\237\363\202\236\244\077\012\234\061
  1156  \151\213\231\244\210\112\216\156\146\115\357\026\304\017\171\050
  1157  \041\140\015\205\026\175\327\124\070\361\222\126\375\265\063\114
  1158  \203\334\327\020\237\113\375\306\370\102\275\272\174\163\002\340
  1159  \377\175\315\133\341\324\254\141\173\127\325\112\173\133\324\205
  1160  \130\047\135\277\370\053\140\254\240\046\256\024\041\047\306\167
  1161  \232\063\200\074\136\106\077\367\303\261\243\206\063\306\350\136
  1162  \015\271\065\054\252\106\301\205\002\165\200\240\353\044\373\025
  1163  \252\344\147\177\156\167\077\364\004\212\057\174\173\343\027\141
  1164  \360\335\011\251\040\310\276\011\244\320\176\104\303\262\060\112
  1165  \070\252\251\354\030\232\007\202\053\333\270\234\030\255\332\340
  1166  \106\027\254\317\135\002\003\001\000\001\243\143\060\141\060\035
  1167  \006\003\125\035\016\004\026\004\024\331\376\041\100\156\224\236
  1168  \274\233\075\234\175\230\040\031\345\214\060\142\262\060\037\006
  1169  \003\125\035\043\004\030\060\026\200\024\331\376\041\100\156\224
  1170  \236\274\233\075\234\175\230\040\031\345\214\060\142\262\060\017
  1171  \006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060
  1172  \016\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060
  1173  \015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202
  1174  \002\001\000\236\105\236\014\073\266\357\341\072\310\174\321\000
  1175  \075\317\342\352\006\265\262\072\273\006\113\150\172\320\043\227
  1176  \164\247\054\360\010\330\171\132\327\132\204\212\330\022\232\033
  1177  \331\175\134\115\160\305\245\371\253\345\243\211\211\335\001\372
  1178  \354\335\371\351\222\227\333\260\106\102\363\323\142\252\225\376
  1179  \061\147\024\151\130\220\012\252\013\356\067\043\307\120\121\264
  1180  \365\176\236\343\173\367\344\314\102\062\055\111\014\313\377\111
  1181  \014\233\036\064\375\156\156\226\212\171\003\266\157\333\011\313
  1182  \375\137\145\024\067\341\070\365\363\141\026\130\344\265\155\015
  1183  \013\004\033\077\120\055\177\263\307\172\032\026\200\140\370\212
  1184  \037\351\033\052\306\371\272\001\032\151\277\322\130\307\124\127
  1185  \010\217\341\071\140\167\113\254\131\204\032\210\361\335\313\117
  1186  \170\327\347\341\063\055\374\356\101\372\040\260\276\313\367\070
  1187  \224\300\341\320\205\017\273\355\054\163\253\355\376\222\166\032
  1188  \144\177\133\015\063\011\007\063\173\006\077\021\244\134\160\074
  1189  \205\300\317\343\220\250\203\167\372\333\346\305\214\150\147\020
  1190  \147\245\122\055\360\304\231\217\177\277\321\153\342\265\107\326
  1191  \331\320\205\231\115\224\233\017\113\215\356\000\132\107\035\021
  1192  \003\254\101\030\257\207\267\157\014\072\217\312\317\334\003\301
  1193  \242\011\310\345\375\200\136\310\140\102\001\033\032\123\132\273
  1194  \067\246\267\274\272\204\351\036\154\032\324\144\332\324\103\376
  1195  \223\213\113\362\054\171\026\020\324\223\013\210\217\241\330\206
  1196  \024\106\221\107\233\050\044\357\127\122\116\134\102\234\252\367
  1197  \111\354\047\350\100\036\263\246\211\042\162\234\365\015\063\264
  1198  \130\243\060\073\335\324\152\124\223\276\032\115\363\223\224\367
  1199  \374\204\013\077\204\040\134\064\003\104\305\332\255\274\012\301
  1200  \002\317\036\345\224\331\363\216\133\330\114\360\235\354\141\027
  1201  \273\024\062\124\014\002\051\223\036\222\206\366\177\357\347\222
  1202  \005\016\131\335\231\010\056\056\372\234\000\122\323\305\146\051
  1203  \344\247\227\104\244\016\050\201\023\065\305\366\157\144\346\101
  1204  \304\325\057\314\064\105\045\317\101\000\226\075\112\056\302\226
  1205  \230\117\116\112\234\227\267\333\037\222\062\310\377\017\121\156
  1206  \326\354\011
  1207  END
  1208  CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
  1209  # For Server Distrust After: Wed Nov 30 00:00:00 2022
  1210  CKA_NSS_SERVER_DISTRUST_AFTER MULTILINE_OCTAL
  1211  \xxxxxxxx
  1212  END
  1213  # For Email Distrust After: Wed Nov 30 00:00:00 2022
  1214  CKA_NSS_EMAIL_DISTRUST_AFTER MULTILINE_OCTAL
  1215  \062\062\061\061\063\060\060\060\060\060\060\060\132
  1216  END`
  1217  

View as plain text