Android APIs
Added in API level 1


This package provides the classes and interfaces for cryptographic applications implementing algorithms for encryption, decryption, or key agreement.

Stream ciphers are supported as well as asymmetric, symmetric and block ciphers. Cipher implementations from different providers can be integrated using the SPI (Service Provider Interface) abstract classes. With class SealedObject a programmer can secure an object by encrypting it with a cipher.

Authentication may be based on MAC (Message Authentication Code) such as HMAC (Hash MAC, i.e. with a SHA-1 hash function).


SecretKey A cryptographic secret (symmetric) key. 


Cipher This class provides access to implementations of cryptographic ciphers for encryption and decryption. 
CipherInputStream This class wraps an InputStream and a cipher so that read() methods return data that are read from the underlying InputStream and processed by the cipher. 
CipherOutputStream This class wraps an output stream and a cipher so that write methods send the data through the cipher before writing them to the underlying output stream. 
CipherSpi This class defines the Service Provider Interface (SPI) for cryptographic ciphers. 
EncryptedPrivateKeyInfo This class implements the EncryptedPrivateKeyInfo ASN.1 type as specified in PKCS #8 - Private-Key Information Syntax Standard
ExemptionMechanism This class implements the functionality of an exemption mechanism such as key recovery, key weakening, or key escrow
ExemptionMechanismSpi The Service Provider Interface (SPI) definition for the ExemptionMechanism class. 
KeyAgreement This class provides the functionality for a key exchange protocol. 
KeyAgreementSpi The Service Provider Interface (SPI) definition for the KeyAgreement class. 
KeyGenerator This class provides the public API for generating symmetric cryptographic keys. 
KeyGeneratorSpi The Service Provider Interface (SPI) definition for the KeyGenerator class. 
Mac This class provides the public API for Message Authentication Code (MAC) algorithms. 
MacSpi The Service-Provider Interface (SPI) definition for the Mac class. 
NullCipher This class provides an identity cipher that does not transform the input data in any way. 
SealedObject A SealedObject is a wrapper around a serializable object instance and encrypts it using a cryptographic cipher. 
SecretKeyFactory The public API for SecretKeyFactory implementations. 
SecretKeyFactorySpi The Service Provider Interface (SPI) definition for the SecretKeyFactory class. 


AEADBadTagException Thrown by a Cipher that is using an Authenticated Encryption with Additional Data (AEAD) mode such as Galois/Counter Mode (GCM) and the tag failed verification. 
BadPaddingException The exception that is thrown when a padding mechanism is expected for the input data, but the input data does not have the proper padding bytes. 
ExemptionMechanismException This is the base class for ExemptionMechanismException
IllegalBlockSizeException The exception, that is thrown when the data length provided to a block cipher does not match the block size of the cipher. 
NoSuchPaddingException The exception that is thrown when the requested padding mechanism is not supported. 
ShortBufferException The exception that is thrown when the result of an operation is attempted to store in a user provided buffer that is too small.