Extensible cryptographic service provider infrastructure (SPI) for using and defining services such as {@link java.security.cert.Certificate Certificates}, {@link java.security.Key Keys}, {@link java.security.KeyStore KeyStores}, {@link java.security.MessageDigest MessageDigests}, and {@link java.security.Signature Signatures}.