@@ -561,33 +561,39 @@ impl CertificateParams {
561
561
serialize_public_key_der ( subject_key, writer. next ( ) ) ;
562
562
// Write extensions
563
563
// According to the spec in RFC 2986, even if attributes are empty we need the empty attribute tag
564
- writer. next ( ) . write_tagged ( Tag :: context ( 0 ) , |writer| {
565
- if write_extension_request {
566
- writer . write_sequence ( |writer| {
567
- let oid = ObjectIdentifier :: from_slice ( oid :: PKCS_9_AT_EXTENSION_REQUEST ) ;
568
- writer. next ( ) . write_oid ( & oid ) ;
569
- writer . next ( ) . write_set ( |writer| {
564
+ writer
565
+ . next ( )
566
+ . write_tagged_implicit ( Tag :: context ( 0 ) , |writer| {
567
+ // RFC 2986 specifies that attributes are a SET OF Attribute
568
+ writer. write_set_of ( |writer| {
569
+ if write_extension_request {
570
570
writer. next ( ) . write_sequence ( |writer| {
571
- // Write key_usage
572
- self . write_key_usage ( writer. next ( ) ) ;
573
- // Write subject_alt_names
574
- self . write_subject_alt_names ( writer. next ( ) ) ;
575
- self . write_extended_key_usage ( writer. next ( ) ) ;
576
-
577
- // Write custom extensions
578
- for ext in custom_extensions {
579
- write_x509_extension (
580
- writer. next ( ) ,
581
- & ext. oid ,
582
- ext. critical ,
583
- |writer| writer. write_der ( ext. content ( ) ) ,
584
- ) ;
585
- }
571
+ let oid =
572
+ ObjectIdentifier :: from_slice ( oid:: PKCS_9_AT_EXTENSION_REQUEST ) ;
573
+ writer. next ( ) . write_oid ( & oid) ;
574
+ writer. next ( ) . write_set ( |writer| {
575
+ writer. next ( ) . write_sequence ( |writer| {
576
+ // Write key_usage
577
+ self . write_key_usage ( writer. next ( ) ) ;
578
+ // Write subject_alt_names
579
+ self . write_subject_alt_names ( writer. next ( ) ) ;
580
+ self . write_extended_key_usage ( writer. next ( ) ) ;
581
+
582
+ // Write custom extensions
583
+ for ext in custom_extensions {
584
+ write_x509_extension (
585
+ writer. next ( ) ,
586
+ & ext. oid ,
587
+ ext. critical ,
588
+ |writer| writer. write_der ( ext. content ( ) ) ,
589
+ ) ;
590
+ }
591
+ } ) ;
592
+ } ) ;
586
593
} ) ;
587
- } ) ;
594
+ }
588
595
} ) ;
589
- }
590
- } ) ;
596
+ } ) ;
591
597
592
598
Ok ( ( ) )
593
599
} ) ?;
0 commit comments