package org.bouncycastle.crypto.tls; import org.bouncycastle.crypto.CryptoException; import org.bouncycastle.crypto.Signer; import org.bouncycastle.crypto.params.AsymmetricKeyParameter; public interface TlsSigner { void init(TlsContext context); byte[] generateRawSignature(AsymmetricKeyParameter privateKey, byte[] md5AndSha1) throws CryptoException; byte[] generateRawSignature(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey, byte[] md5AndSha1) throws CryptoException; boolean verifyRawSignature(byte[] sigBytes, AsymmetricKeyParameter publicKey, byte[] md5AndSha1) throws CryptoException; boolean verifyRawSignature(SignatureAndHashAlgorithm algorithm, byte[] sigBytes, AsymmetricKeyParameter publicKey, byte[] md5AndSha1) throws CryptoException; Signer createSigner(AsymmetricKeyParameter privateKey); Signer createSigner(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey); Signer createVerifyer(AsymmetricKeyParameter publicKey); Signer createVerifyer(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter publicKey); boolean isValidPublicKey(AsymmetricKeyParameter publicKey); }