public interface KeyCrypter extends Serializable
A KeyCrypter can be used to encrypt and decrypt a message. The sequence of events to encrypt and then decrypt a message are as follows:
(1) Ask the user for a password. deriveKey() is then called to create an KeyParameter. This contains the AES key that will be used for encryption.
(2) Encrypt the message using encrypt(), providing the message bytes and the KeyParameter from (1). This returns an EncryptedPrivateKey which contains the encryptedPrivateKey bytes and an initialisation vector.
(3) To decrypt an EncryptedPrivateKey, repeat step (1) to get a KeyParameter, then call decrypt().
There can be different algorithms used for encryption/ decryption so the getUnderstoodEncryptionType is used to determine whether any given KeyCrypter can understand the type of encrypted data you have.
Modifier and Type | Method and Description |
---|---|
byte[] |
decrypt(EncryptedPrivateKey encryptedBytesToDecode,
org.spongycastle.crypto.params.KeyParameter aesKey)
Decrypt the provided encrypted bytes, converting them into unencrypted bytes.
|
org.spongycastle.crypto.params.KeyParameter |
deriveKey(CharSequence password)
Create a KeyParameter (which typically contains an AES key)
|
EncryptedPrivateKey |
encrypt(byte[] plainBytes,
org.spongycastle.crypto.params.KeyParameter aesKey)
Encrypt the supplied bytes, converting them into ciphertext.
|
Protos.Wallet.EncryptionType |
getUnderstoodEncryptionType()
Return the EncryptionType enum value which denotes the type of encryption/ decryption that this KeyCrypter
can understand.
|
Protos.Wallet.EncryptionType getUnderstoodEncryptionType()
org.spongycastle.crypto.params.KeyParameter deriveKey(CharSequence password) throws KeyCrypterException
password
- KeyCrypterException
byte[] decrypt(EncryptedPrivateKey encryptedBytesToDecode, org.spongycastle.crypto.params.KeyParameter aesKey) throws KeyCrypterException
KeyCrypterException
- if decryption was unsuccessful.EncryptedPrivateKey encrypt(byte[] plainBytes, org.spongycastle.crypto.params.KeyParameter aesKey) throws KeyCrypterException
KeyCrypterException
- if encryption was unsuccessfulCopyright © 2014. All rights reserved.