File tree 2 files changed +27
-2
lines changed
2 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -2024,7 +2024,9 @@ pub fn op_node_export_public_key_pem(
2024
2024
_ => unreachable ! ( "export_der would have errored" ) ,
2025
2025
} ;
2026
2026
2027
- let mut out = vec ! [ 0 ; 2048 ] ;
2027
+ let pem_len = der:: pem:: encapsulated_len ( label, LineEnding :: LF , data. len ( ) )
2028
+ . map_err ( |_| type_error ( "very large data" ) ) ?;
2029
+ let mut out = vec ! [ 0 ; pem_len] ;
2028
2030
let mut writer = PemWriter :: new ( label, LineEnding :: LF , & mut out) ?;
2029
2031
writer. write ( & data) ?;
2030
2032
let len = writer. finish ( ) ?;
@@ -2063,7 +2065,9 @@ pub fn op_node_export_private_key_pem(
2063
2065
_ => unreachable ! ( "export_der would have errored" ) ,
2064
2066
} ;
2065
2067
2066
- let mut out = vec ! [ 0 ; 2048 ] ;
2068
+ let pem_len = der:: pem:: encapsulated_len ( label, LineEnding :: LF , data. len ( ) )
2069
+ . map_err ( |_| type_error ( "very large data" ) ) ?;
2070
+ let mut out = vec ! [ 0 ; pem_len] ;
2067
2071
let mut writer = PemWriter :: new ( label, LineEnding :: LF , & mut out) ?;
2068
2072
writer. write ( & data) ?;
2069
2073
let len = writer. finish ( ) ?;
Original file line number Diff line number Diff line change @@ -656,3 +656,24 @@ z6TExWlQMjt66nV7R8cRAkzmABrG+NW3e8Zpac7Lkuv+zu0S+K7c
656
656
assertEquals ( publicKey . type , "public" ) ;
657
657
assertEquals ( publicKey . asymmetricKeyType , "rsa" ) ;
658
658
} ) ;
659
+
660
+ // https://github.com/denoland/deno/issues/26188
661
+ Deno . test ( "generateKeyPair large pem" , function ( ) {
662
+ const passphrase = "mypassphrase" ;
663
+ const cipher = "aes-256-cbc" ;
664
+ const modulusLength = 4096 ;
665
+
666
+ generateKeyPairSync ( "rsa" , {
667
+ modulusLength,
668
+ publicKeyEncoding : {
669
+ type : "spki" ,
670
+ format : "pem" ,
671
+ } ,
672
+ privateKeyEncoding : {
673
+ type : "pkcs8" ,
674
+ format : "pem" ,
675
+ cipher,
676
+ passphrase,
677
+ } ,
678
+ } ) ;
679
+ } ) ;
You can’t perform that action at this time.
0 commit comments