@ -49,7 +49,7 @@ function test(honorCipherOrder, clientCipher, expectedCipher, secureOptions, cb)
secureProtocol : SSL_Method ,
secureProtocol : SSL_Method ,
key : fs . readFileSync ( common . fixturesDir + '/keys/agent2-key.pem' ) ,
key : fs . readFileSync ( common . fixturesDir + '/keys/agent2-key.pem' ) ,
cert : fs . readFileSync ( common . fixturesDir + '/keys/agent2-cert.pem' ) ,
cert : fs . readFileSync ( common . fixturesDir + '/keys/agent2-cert.pem' ) ,
ciphers : 'AES256-SHA:RC4-SHA:DES-CBC -SHA' ,
ciphers : 'AES256-SHA:RC4-SHA:AES128 -SHA' ,
secureOptions : secureOptions ,
secureOptions : secureOptions ,
honorCipherOrder : ! ! honorCipherOrder
honorCipherOrder : ! ! honorCipherOrder
} ;
} ;
@ -95,37 +95,37 @@ test1();
function test1 ( ) {
function test1 ( ) {
// Client has the preference of cipher suites by default
// Client has the preference of cipher suites by default
test ( false , 'DES-CBC-SHA: RC4-SHA:AES256-SHA' , 'DES-CBC -SHA' , 0 , test2 ) ;
test ( false , 'RC4-SHA:AES256-SHA:AES128 -SHA' , 'RC4 -SHA' , 0 , test2 ) ;
}
}
function test2 ( ) {
function test2 ( ) {
// Server has the preference of cipher suites where AES256-SHA is in
// Server has the preference of cipher suites where AES256-SHA is in
// the first.
// the first.
test ( true , 'DES-CBC-SHA: RC4-SHA:AES256-SHA' , 'AES256-SHA' , 0 , test3 ) ;
test ( true , 'RC4-SHA:AES256-SHA:AES128 -SHA' , 'AES256-SHA' , 0 , test3 ) ;
}
}
function test3 ( ) {
function test3 ( ) {
// Server has the preference of cipher suites. RC4 -SHA is given
// Server has the preference of cipher suites. AES256 -SHA is given
// higher priority over DES-CBC -SHA among client cipher suites.
// higher priority over RC4 -SHA among client cipher suites.
test ( true , 'DES-CBC-SHA:RC4-SHA' , 'RC4 -SHA' , 0 , test4 ) ;
test ( true , 'RC4-SHA:AES256-SHA' , 'AES256 -SHA' , 0 , test4 ) ;
}
}
function test4 ( ) {
function test4 ( ) {
// As client has only one cipher, server has no choice in regardless
// As client has only one cipher, server has no choice in regardless
// of honorCipherOrder.
// of honorCipherOrder.
test ( true , 'DES-CBC-SHA' , 'DES-CBC -SHA' , 0 , test5 ) ;
test ( true , 'AES128-SHA' , 'AES128 -SHA' , 0 , test5 ) ;
}
}
function test5 ( ) {
function test5 ( ) {
test ( false ,
test ( false ,
'DES-CBC -SHA' ,
'RC4 -SHA' ,
'DES-CBC -SHA' ,
'RC4 -SHA' ,
process . binding ( 'constants' ) . SSL_OP_SINGLE_DH_USE , test6 ) ;
process . binding ( 'constants' ) . SSL_OP_SINGLE_DH_USE , test6 ) ;
}
}
function test6 ( ) {
function test6 ( ) {
test ( true ,
test ( true ,
'DES-CBC -SHA' ,
'RC4 -SHA' ,
'DES-CBC -SHA' ,
'RC4 -SHA' ,
process . binding ( 'constants' ) . SSL_OP_SINGLE_DH_USE ) ;
process . binding ( 'constants' ) . SSL_OP_SINGLE_DH_USE ) ;
}
}