diff options
author | Kenny Root <kenny@the-b.org> | 2013-04-11 21:01:32 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2013-04-11 21:01:32 -0700 |
commit | 3359a7f6d20f4d799140e304f646491863735028 (patch) | |
tree | dd2f06200b213687aff983bd2c67cec609f612ef /lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java | |
parent | 54ca2c37bda02ff6f2579a20e122f3a893da705d (diff) | |
download | sshlib-3359a7f6d20f4d799140e304f646491863735028.tar.gz sshlib-3359a7f6d20f4d799140e304f646491863735028.tar.bz2 sshlib-3359a7f6d20f4d799140e304f646491863735028.zip |
Fix line endings
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java')
-rw-r--r-- | lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java | 156 |
1 files changed, 78 insertions, 78 deletions
diff --git a/lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java b/lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java index 60889f0..0ae51b3 100644 --- a/lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java +++ b/lib/src/main/java/com/trilead/ssh2/crypto/cipher/CBCMode.java @@ -1,78 +1,78 @@ -package com.trilead.ssh2.crypto.cipher;
-
-/**
- * CBCMode.
- *
- * @author Christian Plattner, plattner@trilead.com
- * @version $Id: CBCMode.java,v 1.1 2007/10/15 12:49:55 cplattne Exp $
- */
-public class CBCMode implements BlockCipher
-{
- BlockCipher tc;
- int blockSize;
- boolean doEncrypt;
-
- byte[] cbc_vector;
- byte[] tmp_vector;
-
- public void init(boolean forEncryption, byte[] key)
- {
- }
-
- public CBCMode(BlockCipher tc, byte[] iv, boolean doEncrypt)
- throws IllegalArgumentException
- {
- this.tc = tc;
- this.blockSize = tc.getBlockSize();
- this.doEncrypt = doEncrypt;
-
- if (this.blockSize != iv.length)
- throw new IllegalArgumentException("IV must be " + blockSize
- + " bytes long! (currently " + iv.length + ")");
-
- this.cbc_vector = new byte[blockSize];
- this.tmp_vector = new byte[blockSize];
- System.arraycopy(iv, 0, cbc_vector, 0, blockSize);
- }
-
- public int getBlockSize()
- {
- return blockSize;
- }
-
- private void encryptBlock(byte[] src, int srcoff, byte[] dst, int dstoff)
- {
- for (int i = 0; i < blockSize; i++)
- cbc_vector[i] ^= src[srcoff + i];
-
- tc.transformBlock(cbc_vector, 0, dst, dstoff);
-
- System.arraycopy(dst, dstoff, cbc_vector, 0, blockSize);
- }
-
- private void decryptBlock(byte[] src, int srcoff, byte[] dst, int dstoff)
- {
- /* Assume the worst, src and dst are overlapping... */
-
- System.arraycopy(src, srcoff, tmp_vector, 0, blockSize);
-
- tc.transformBlock(src, srcoff, dst, dstoff);
-
- for (int i = 0; i < blockSize; i++)
- dst[dstoff + i] ^= cbc_vector[i];
-
- /* ...that is why we need a tmp buffer. */
-
- byte[] swap = cbc_vector;
- cbc_vector = tmp_vector;
- tmp_vector = swap;
- }
-
- public void transformBlock(byte[] src, int srcoff, byte[] dst, int dstoff)
- {
- if (doEncrypt)
- encryptBlock(src, srcoff, dst, dstoff);
- else
- decryptBlock(src, srcoff, dst, dstoff);
- }
-}
+package com.trilead.ssh2.crypto.cipher; + +/** + * CBCMode. + * + * @author Christian Plattner, plattner@trilead.com + * @version $Id: CBCMode.java,v 1.1 2007/10/15 12:49:55 cplattne Exp $ + */ +public class CBCMode implements BlockCipher +{ + BlockCipher tc; + int blockSize; + boolean doEncrypt; + + byte[] cbc_vector; + byte[] tmp_vector; + + public void init(boolean forEncryption, byte[] key) + { + } + + public CBCMode(BlockCipher tc, byte[] iv, boolean doEncrypt) + throws IllegalArgumentException + { + this.tc = tc; + this.blockSize = tc.getBlockSize(); + this.doEncrypt = doEncrypt; + + if (this.blockSize != iv.length) + throw new IllegalArgumentException("IV must be " + blockSize + + " bytes long! (currently " + iv.length + ")"); + + this.cbc_vector = new byte[blockSize]; + this.tmp_vector = new byte[blockSize]; + System.arraycopy(iv, 0, cbc_vector, 0, blockSize); + } + + public int getBlockSize() + { + return blockSize; + } + + private void encryptBlock(byte[] src, int srcoff, byte[] dst, int dstoff) + { + for (int i = 0; i < blockSize; i++) + cbc_vector[i] ^= src[srcoff + i]; + + tc.transformBlock(cbc_vector, 0, dst, dstoff); + + System.arraycopy(dst, dstoff, cbc_vector, 0, blockSize); + } + + private void decryptBlock(byte[] src, int srcoff, byte[] dst, int dstoff) + { + /* Assume the worst, src and dst are overlapping... */ + + System.arraycopy(src, srcoff, tmp_vector, 0, blockSize); + + tc.transformBlock(src, srcoff, dst, dstoff); + + for (int i = 0; i < blockSize; i++) + dst[dstoff + i] ^= cbc_vector[i]; + + /* ...that is why we need a tmp buffer. */ + + byte[] swap = cbc_vector; + cbc_vector = tmp_vector; + tmp_vector = swap; + } + + public void transformBlock(byte[] src, int srcoff, byte[] dst, int dstoff) + { + if (doEncrypt) + encryptBlock(src, srcoff, dst, dstoff); + else + decryptBlock(src, srcoff, dst, dstoff); + } +} |