@ -28,24 +28,22 @@ object XteaTest {
// two blocks
// two blocks
TestVector ( " 00000000000000000000000000000000 " , " 70e1225d6e4e76554141414141414141 " ,
TestVector ( " 00000000000000000000000000000000 " , " 70e1225d6e4e76554141414141414141 " ,
" 4141414141414141ed23375a821a8c2d " ) ,
" 4141414141414141ed23375a821a8c2d " )
// not a multiple of the block size
TestVector ( " 00000000000000000000000000000000 " , " 01 " , " 01 " ) ,
TestVector ( " 00000000000000000000000000000000 " , " 01020304050607 " , " 01020304050607 " ) ,
TestVector ( " 00000000000000000000000000000000 " , " 70e1225d6e4e765501 " , " 414141414141414101 " ) ,
TestVector ( " 00000000000000000000000000000000 " , " 70e1225d6e4e765501020304050607 " ,
" 414141414141414101020304050607 " )
)
)
@Test
@Test
fun testEncrypt ( ) {
fun testEncrypt ( ) {
for ( vector in TEST _VECTORS ) {
for ( vector in TEST _VECTORS ) {
val buffer = Unpooled . copiedBuffer ( vector . plaintext )
for ( i in 0. . 7 ) {
for ( j in 0. . 7 ) {
val header = ByteArray ( i ) { it . toByte ( ) }
val trailer = ByteArray ( j ) { it . toByte ( ) }
val buffer = Unpooled . copiedBuffer ( header , vector . plaintext , trailer )
try {
try {
buffer . xteaEncrypt ( 0 , buffer . readableBytes ( ) , vector . key )
buffer . xteaEncrypt ( i , vector . plaintext . size , vector . key )
val expected = Unpooled . wrappedBuffer ( vector . ciphertext )
val expected = Unpooled . wrappedBuffer ( header , vector . ciphertext , trailer )
try {
try {
assertEquals ( expected , buffer )
assertEquals ( expected , buffer )
} finally {
} finally {
@ -56,15 +54,22 @@ object XteaTest {
}
}
}
}
}
}
}
}
@Test
@Test
fun testDecrypt ( ) {
fun testDecrypt ( ) {
for ( vector in TEST _VECTORS ) {
for ( vector in TEST _VECTORS ) {
val buffer = Unpooled . copiedBuffer ( vector . ciphertext )
for ( i in 0. . 7 ) {
for ( j in 0. . 7 ) {
val header = ByteArray ( i ) { it . toByte ( ) }
val trailer = ByteArray ( j ) { it . toByte ( ) }
val buffer = Unpooled . copiedBuffer ( header , vector . ciphertext , trailer )
try {
try {
buffer . xteaDecrypt ( 0 , buffer . readableBytes ( ) , vector . key )
buffer . xteaDecrypt ( i , vector . ciphertext . size , vector . key )
val expected = Unpooled . wrappedBuffer ( vector . plaintext )
val expected = Unpooled . wrappedBuffer ( header , vector . plaintext , trailer )
try {
try {
assertEquals ( expected , buffer )
assertEquals ( expected , buffer )
} finally {
} finally {
@ -75,4 +80,6 @@ object XteaTest {
}
}
}
}
}
}
}
}
}
}