diff --git a/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SEED_CBC.java b/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SEED_CBC.java index d65415e..3e1d934 100644 --- a/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SEED_CBC.java +++ b/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SEED_CBC.java @@ -372,12 +372,18 @@ public class KISA_SEED_CBC { if(ENDIAN != Common.BIG_ENDIAN) { for(i=0;i> ((i%4)*8)); + int temp = in[i / 4]; + int shift = (i % 4) * 8; + data[i] = (byte) (temp >> shift); +// data[i] = (byte)(in[i/4] >> ((i%4)*8)); } } else { for(i=0;i> ((3-(i%4))*8)); + int temp = in[i / 4]; + int shift = (3 - (i % 4)) * 8; + data[i] = (byte) (temp >> shift); +// data[i] = (byte)(in[i/4] >> ((3-(i%4))*8)); } } @@ -814,13 +820,21 @@ public class KISA_SEED_CBC { int mask_value = 0x0ff << shift_value; int mask_value2 = ~mask_value; int value2 = (value&0x0ff) << shift_value; - dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); + + int dstValue = dst[b_offset / 4]; + dstValue = (dstValue & mask_value2) | (value2 & mask_value); + dst[b_offset / 4] = dstValue; +// dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); } else { int shift_value = (b_offset%4)*8; int mask_value = 0x0ff << shift_value; int mask_value2 = ~mask_value; int value2 = (value&0x0ff) << shift_value; - dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); + + int dstValue = dst[b_offset / 4]; + dstValue = (dstValue & mask_value2) | (value2 & mask_value); + dst[b_offset / 4] = dstValue; +// dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); } } @@ -828,12 +842,18 @@ public class KISA_SEED_CBC { if(ENDIAN == BIG_ENDIAN) { int shift_value = (3-b_offset%4)*8; int mask_value = 0x0ff << shift_value; - int value = (src[b_offset/4] & mask_value) >> shift_value; + int mask_value2 = src[b_offset/4]; + int value2 = mask_value2 & mask_value; + int value = value2 >> shift_value; +// int value = (src[b_offset/4] & mask_value) >> shift_value; return (byte)value; } else { int shift_value = (b_offset%4)*8; int mask_value = 0x0ff << shift_value; - int value = (src[b_offset/4] & mask_value) >> shift_value; + int mask_value2 = src[b_offset/4]; + int value2 = mask_value2 & mask_value; + int value = value2 >> shift_value; +// int value = (src[b_offset/4] & mask_value) >> shift_value; return (byte)value; } diff --git a/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SHA256.java b/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SHA256.java index 0b3f140..da493f0 100644 --- a/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SHA256.java +++ b/src/main/java/com/palnet/comn/encrptn/kisa/KISA_SHA256.java @@ -272,13 +272,21 @@ public class KISA_SHA256 { int mask_value = 0x0ff << shift_value; int mask_value2 = ~mask_value; int value2 = (value&0x0ff) << shift_value; - dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); + + int dstValue = dst[b_offset / 4]; + dstValue = (dstValue & mask_value2) | (value2 & mask_value); + dst[b_offset / 4] = dstValue; +// dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); } else { int shift_value = (b_offset%4)*8; int mask_value = 0x0ff << shift_value; int mask_value2 = ~mask_value; int value2 = (value&0x0ff) << shift_value; - dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); + + int dstValue = dst[b_offset / 4]; + dstValue = (dstValue & mask_value2) | (value2 & mask_value); + dst[b_offset / 4] = dstValue; +// dst[b_offset/4] = (dst[b_offset/4] & mask_value2) | (value2 & mask_value); } } @@ -286,12 +294,18 @@ public class KISA_SHA256 { if(ENDIAN == BIG_ENDIAN) { int shift_value = (3-b_offset%4)*8; int mask_value = 0x0ff << shift_value; - int value = (src[b_offset/4] & mask_value) >> shift_value; + int mask_value2 = src[b_offset/4]; + int value2 = mask_value2 & mask_value; + int value = value2 >> shift_value; +// int value = (src[b_offset/4] & mask_value) >> shift_value; return (byte)value; } else { int shift_value = (b_offset%4)*8; int mask_value = 0x0ff << shift_value; - int value = (src[b_offset/4] & mask_value) >> shift_value; + int mask_value2 = src[b_offset/4]; + int value2 = mask_value2 & mask_value; + int value = value2 >> shift_value; +// int value = (src[b_offset/4] & mask_value) >> shift_value; return (byte)value; }