@@ -27,7 +27,29 @@ public override string Name
2727 new BlockCipherVectorTest ( 4 , new BlowfishEngine ( ) , new KeyParameter ( Hex . Decode ( "0123456789ABCDEF" ) ) , "1111111111111111" , "61F9C3802281B096" ) ,
2828 new BlockCipherVectorTest ( 5 , new BlowfishEngine ( ) , new KeyParameter ( Hex . Decode ( "FEDCBA9876543210" ) ) , "0123456789ABCDEF" , "0ACEAB0FC6A0A28D" ) ,
2929 new BlockCipherVectorTest ( 6 , new BlowfishEngine ( ) , new KeyParameter ( Hex . Decode ( "7CA110454A1A6E57" ) ) , "01A1D6D039776742" , "59C68245EB05282B" ) ,
30- new BlockCipherVectorTest ( 7 , new BlowfishEngine ( ) , new KeyParameter ( Hex . Decode ( "0131D9619DC1376E" ) ) , "5CD54CA83DEF57DA" , "B1B8CC0B250F09A0" )
30+ new BlockCipherVectorTest ( 7 , new BlowfishEngine ( ) , new KeyParameter ( Hex . Decode ( "0131D9619DC1376E" ) ) , "5CD54CA83DEF57DA" , "B1B8CC0B250F09A0" ) ,
31+
32+ // with BlowfishParameters
33+ new BlockCipherVectorTest ( 10 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "0000000000000000" ) ) , "0000000000000000" , "4EF997456198DD78" ) ,
34+ new BlockCipherVectorTest ( 11 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "FFFFFFFFFFFFFFFF" ) ) , "FFFFFFFFFFFFFFFF" , "51866FD5B85ECB8A" ) ,
35+ new BlockCipherVectorTest ( 12 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "3000000000000000" ) ) , "1000000000000001" , "7D856F9A613063F2" ) ,
36+ new BlockCipherVectorTest ( 13 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "1111111111111111" ) ) , "1111111111111111" , "2466DD878B963C9D" ) ,
37+ new BlockCipherVectorTest ( 14 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "0123456789ABCDEF" ) ) , "1111111111111111" , "61F9C3802281B096" ) ,
38+ new BlockCipherVectorTest ( 15 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "FEDCBA9876543210" ) ) , "0123456789ABCDEF" , "0ACEAB0FC6A0A28D" ) ,
39+ new BlockCipherVectorTest ( 16 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "7CA110454A1A6E57" ) ) , "01A1D6D039776742" , "59C68245EB05282B" ) ,
40+ new BlockCipherVectorTest ( 17 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "0131D9619DC1376E" ) ) , "5CD54CA83DEF57DA" , "B1B8CC0B250F09A0" ) ,
41+
42+ // with BlowfishParameters and extended keys
43+ new BlockCipherVectorTest ( 20 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ) , extendedKey : true ) , "0000000000000000" , "4ef997456198dd78" ) ,
44+ new BlockCipherVectorTest ( 21 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ) , extendedKey : true ) , "0000000000000000" , "4ef997456198dd78" ) ,
45+ new BlockCipherVectorTest ( 22 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ) , extendedKey : true ) , "ffffffffffffffff" , "51866fd5b85ecb8a" ) ,
46+ new BlockCipherVectorTest ( 23 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ) , extendedKey : true ) , "ffffffffffffffff" , "51866fd5b85ecb8a" ) ,
47+ new BlockCipherVectorTest ( 24 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" ) , extendedKey : true ) , "1111111111111111" , "2466dd878b963c9d" ) ,
48+ new BlockCipherVectorTest ( 25 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" ) , extendedKey : true ) , "1111111111111111" , "2466dd878b963c9d" ) ,
49+ new BlockCipherVectorTest ( 26 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ) , extendedKey : true ) , "1000000000000001" , "6252d3fc90256722" ) ,
50+ new BlockCipherVectorTest ( 27 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ) , extendedKey : true ) , "1000000000000001" , "6252d3fc90256722" ) ,
51+ new BlockCipherVectorTest ( 28 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "4f8afc23a1daac522510982b41c9186081b2a00537e193d85d004013ce520cc77aeb3c7822668c425adf7a9af977ad0c380f471229dcc73478d6a560ce3bc730df05e975a6d06d4e" ) , extendedKey : true ) , "63038f81aff43d3e" , "88ccd0c218b35b0b" ) ,
52+ new BlockCipherVectorTest ( 29 , new BlowfishEngine ( ) , new BlowfishParameters ( Hex . Decode ( "4f8afc23a1daac522510982b41c9186081b2a00537e193d85d004013ce520cc77aeb3c7822668c425adf7a9af977ad0c380f471229dcc73478d6a560ce3bc730df05e975a6d06d4e9be8ca0e" ) , extendedKey : true ) , "63038f81aff43d3e" , "88ccd0c218b35b0b" ) ,
3153 } ;
3254
3355 public BlowfishTest ( )
@@ -63,6 +85,27 @@ public void TestFunction()
6385 Assert . AreEqual ( "key length must be in range 32 to 448 bits" , e . Message ) ;
6486 }
6587
88+ // key range check -- new BlowfishParameters
89+ try
90+ {
91+ blowfish . Init ( true , new BlowfishParameters ( new byte [ 1 ] ) ) ;
92+ Fail ( "no exception" ) ;
93+ }
94+ catch ( ArgumentException e )
95+ {
96+ Assert . AreEqual ( "key length must be in range 32 to 448 bits" , e . Message ) ;
97+ }
98+
99+ try
100+ {
101+ blowfish . Init ( true , new BlowfishParameters ( new byte [ 59 ] ) ) ;
102+ Fail ( "no exception" ) ;
103+ }
104+ catch ( ArgumentException e )
105+ {
106+ Assert . AreEqual ( "key length must be in range 32 to 448 bits" , e . Message ) ;
107+ }
108+
66109 Assert . AreEqual ( Name + ": Okay" , resultText ) ;
67110 }
68111 }
0 commit comments