@ -4289,3 +4289,87 @@ TEST(X509Test, NamePrint) {
EXPECT_EQ ( buf , truncated ) ;
}
}
// kLargeSerialPEM is a certificate with a large serial number.
static const char kLargeSerialPEM [ ] = R " (
- - - - - BEGIN CERTIFICATE - - - - -
MIICZjCCAc + gAwIBAgIQASNFZ4mrze8BI0VniavN7zANBgkqhkiG9w0BAQsFADA2
MRowGAYDVQQKExFCb3JpbmdTU0wgVEVTVElORzEYMBYGA1UEAxMPSW50ZXJtZWRp
YXRlIENBMCAXDTE1MDEwMTAwMDAwMFoYDzIxMDAwMTAxMDAwMDAwWjAyMRowGAYD
VQQKExFCb3JpbmdTU0wgVEVTVElORzEUMBIGA1UEAxMLZXhhbXBsZS5jb20wgZ8w
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMPRTRliCpKEnug6OzI0rJVcQep5p + aT
9 sCg + pj + HVyg / DYTwqZ6qJRKhM + MbkhdJuU7FyqlsBeCeM / OjwMjcY0yEB / xJg1i
ygfuBztTLuPnHxtSuKwae5MeqSofp3j97sRMnuLcKlHxu8rXoOCAS9BO50uKnPwU
Ee1iEVqR92FPAgMBAAGjdzB1MA4GA1UdDwEB / wQEAwIFoDAdBgNVHSUEFjAUBggr
BgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH / BAIwADAZBgNVHQ4EEgQQo3mm9u6v
uaVeN4wRgDTidTAbBgNVHSMEFDASgBCMGmiotXbbXVd7H40UsgajMA0GCSqGSIb3
DQEBCwUAA4GBAGP + n4kKGn / 8u ddYLWTXbUsz + KLuEXNDMyu3vRufLjTpIbP2MCNo
85f hLeC3fzKuGOk + 6 QGVLOBBcWDrrLqrmqnWdBMPULDo2QoF71a4GVjeJh + ax / tZ
PyeGVPUK21TE0LDIxf2a11d1CJw582MgZQIPk4tXk + AcU9EqIceKgECG
- - - - - END CERTIFICATE - - - - -
) " ;
TEST ( X509Test , Print ) {
bssl : : UniquePtr < X509 > cert ( CertFromPEM ( kLargeSerialPEM ) ) ;
ASSERT_TRUE ( cert ) ;
bssl : : UniquePtr < BIO > bio ( BIO_new ( BIO_s_mem ( ) ) ) ;
ASSERT_TRUE ( bio ) ;
EXPECT_TRUE ( X509_print_ex ( bio . get ( ) , cert . get ( ) , 0 , 0 ) ) ;
// Nothing should be left in the error queue.
EXPECT_EQ ( 0u , ERR_peek_error ( ) ) ;
// This output is not guaranteed to be stable, but we assert on it to make
// sure something is printed.
const uint8_t * data ;
size_t data_len ;
ASSERT_TRUE ( BIO_mem_contents ( bio . get ( ) , & data , & data_len ) ) ;
std : : string print ( reinterpret_cast < const char * > ( data ) , data_len ) ;
EXPECT_EQ ( print , R " (Certificate:
Data :
Version : 3 ( 0x2 )
Serial Number :
01 : 23 : 45 : 67 : 89 : ab : cd : ef : 01 : 23 : 45 : 67 : 89 : ab : cd : ef
Signature Algorithm : sha256WithRSAEncryption
Issuer : O = BoringSSL TESTING , CN = Intermediate CA
Validity
Not Before : Jan 1 00 : 00 : 00 2015 GMT
Not After : Jan 1 00 : 00 : 00 2100 GMT
Subject : O = BoringSSL TESTING , CN = example . com
Subject Public Key Info :
Public Key Algorithm : rsaEncryption
Public - Key : ( 1024 bit )
Modulus :
00 : c3 : d1 : 4 d : 19 : 62 : 0 a : 92 : 84 : 9 e : e8 : 3 a : 3 b : 32 : 34 :
ac : 95 : 5 c : 41 : ea : 79 : a7 : e6 : 93 : f6 : c0 : a0 : fa : 98 : fe :
1 d : 5 c : a0 : fc : 36 : 13 : c2 : a6 : 7 a : a8 : 94 : 4 a : 84 : cf : 8 c :
6 e : 48 : 5 d : 26 : e5 : 3 b : 17 : 2 a : a5 : b0 : 17 : 82 : 78 : cf : ce :
8f : 03 : 23 : 71 : 8 d : 32 : 10 : 1f : f1 : 26 : 0 d : 62 : ca : 07 : ee :
07 : 3 b : 53 : 2 e : e3 : e7 : 1f : 1 b : 52 : b8 : ac : 1 a : 7 b : 93 : 1 e :
a9 : 2 a : 1f : a7 : 78 : fd : ee : c4 : 4 c : 9 e : e2 : dc : 2 a : 51 : f1 :
bb : ca : d7 : a0 : e0 : 80 : 4 b : d0 : 4 e : e7 : 4 b : 8 a : 9 c : fc : 14 :
11 : ed : 62 : 11 : 5 a : 91 : f7 : 61 : 4f
Exponent : 65537 ( 0x10001 )
X509v3 extensions :
X509v3 Key Usage : critical
Digital Signature , Key Encipherment
X509v3 Extended Key Usage :
TLS Web Server Authentication , TLS Web Client Authentication
X509v3 Basic Constraints : critical
CA : FALSE
X509v3 Subject Key Identifier :
A3 : 79 : A6 : F6 : EE : AF : B9 : A5 : 5 E : 37 : 8 C : 11 : 80 : 34 : E2 : 75
X509v3 Authority Key Identifier :
keyid : 8 C : 1 A : 68 : A8 : B5 : 76 : DB : 5 D : 57 : 7 B : 1F : 8 D : 14 : B2 : 06 : A3
Signature Algorithm : sha256WithRSAEncryption
63 : fe : 9f : 89 : 0 a : 1 a : 7f : fc : b9 : d7 : 58 : 2 d : 64 : d7 : 6 d : 4 b : 33 : f8 :
a2 : ee : 11 : 73 : 43 : 33 : 2 b : b7 : bd : 1 b : 9f : 2 e : 34 : e9 : 21 : b3 : f6 : 30 :
23 : 68 : f3 : 97 : e1 : 2 d : e0 : b7 : 7f : 32 : ae : 18 : e9 : 3 e : e9 : 01 : 95 : 2 c :
e0 : 41 : 71 : 60 : eb : ac : ba : ab : 9 a : a9 : d6 : 74 : 13 : 0f : 50 : b0 : e8 : d9 :
0 a : 05 : ef : 56 : b8 : 19 : 58 : de : 26 : 1f : 9 a : c7 : fb : 59 : 3f : 27 : 86 : 54 :
f5 : 0 a : db : 54 : c4 : d0 : b0 : c8 : c5 : fd : 9 a : d7 : 57 : 75 : 08 : 9 c : 39 : f3 :
63 : 20 : 65 : 02 : 0f : 93 : 8 b : 57 : 93 : e0 : 1 c : 53 : d1 : 2 a : 21 : c7 : 8 a : 80 :
40 : 86
) " );
}