summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crypto/src/crypto/modes/SicBlockCipher.cs7
-rw-r--r--crypto/test/src/test/BlockCipherTest.cs1
2 files changed, 5 insertions, 3 deletions
diff --git a/crypto/src/crypto/modes/SicBlockCipher.cs b/crypto/src/crypto/modes/SicBlockCipher.cs
index 3e2b8deba..17f86ee10 100644
--- a/crypto/src/crypto/modes/SicBlockCipher.cs
+++ b/crypto/src/crypto/modes/SicBlockCipher.cs
@@ -18,8 +18,7 @@ namespace Org.BouncyCastle.Crypto.Modes
         private readonly int blockSize;
         private readonly byte[] counter;
         private readonly byte[] counterOut;
-
-        private byte[] IV = null;
+        private byte[] IV;
 
         /**
         * Basic constructor.
@@ -32,6 +31,7 @@ namespace Org.BouncyCastle.Crypto.Modes
             this.blockSize = cipher.GetBlockSize();
             this.counter = new byte[blockSize];
             this.counterOut = new byte[blockSize];
+            this.IV = new byte[blockSize];
         }
 
         /**
@@ -108,7 +108,8 @@ namespace Org.BouncyCastle.Crypto.Modes
 
         public virtual void Reset()
         {
-            Array.Copy(IV, 0, counter, 0, counter.Length);
+            Arrays.Fill(counter, (byte)0);
+            Array.Copy(IV, 0, counter, 0, System.Math.Min(IV.Length, counter.Length));
             cipher.Reset();
         }
     }
diff --git a/crypto/test/src/test/BlockCipherTest.cs b/crypto/test/src/test/BlockCipherTest.cs
index 2e8e8b0b8..93cf2b0a5 100644
--- a/crypto/test/src/test/BlockCipherTest.cs
+++ b/crypto/test/src/test/BlockCipherTest.cs
@@ -438,6 +438,7 @@ namespace Org.BouncyCastle.Tests
                 {
                     // TODO Examine short IV handling for these FIPS-compliant modes in Java build
                     if (mode.StartsWith("CFB")
+                        || mode.StartsWith("CTR")
                         || mode.StartsWith("GOFB")
                         || mode.StartsWith("OFB")
                         || mode.StartsWith("OPENPGPCFB"))