diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/AsymmetricBlockCipher.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/AsymmetricBlockCipher.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/AsymmetricBlockCipher.java b/core/src/main/java/org/spongycastle/crypto/AsymmetricBlockCipher.java new file mode 100644 index 00000000..a026a69a --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/AsymmetricBlockCipher.java @@ -0,0 +1,45 @@ +package org.spongycastle.crypto; + + +/** + * base interface that a public/private key block cipher needs + * to conform to. + */ +public interface AsymmetricBlockCipher +{ + /** + * initialise the cipher. + * + * @param forEncryption if true the cipher is initialised for + * encryption, if false for decryption. + * @param param the key and other data required by the cipher. + */ + public void init(boolean forEncryption, CipherParameters param); + + /** + * returns the largest size an input block can be. + * + * @return maximum size for an input block. + */ + public int getInputBlockSize(); + + /** + * returns the maximum size of the block produced by this cipher. + * + * @return maximum size of the output block produced by the cipher. + */ + public int getOutputBlockSize(); + + /** + * process the block of len bytes stored in in from offset inOff. + * + * @param in the input data + * @param inOff offset into the in array where the data starts + * @param len the length of the block to be processed. + * @return the resulting byte array of the encryption/decryption process. + * @exception InvalidCipherTextException data decrypts improperly. + * @exception DataLengthException the input data is too large for the cipher. + */ + public byte[] processBlock(byte[] in, int inOff, int len) + throws InvalidCipherTextException; +} |