blob: 499395f76187db37eacc749a9df917631d593749 [file] [log] [blame]
package chip.devicecontroller;
/** Delegate for a P256Keypair for use within the Java environment. */
public interface KeypairDelegate {
/**
* Ensure that a private key is generated when this method returns.
*
* @throws KeypairException if a private key could not be generated or resolved
*/
void generatePrivateKey() throws KeypairException;
/**
* Returns an operational PKCS#10 CSR in DER-encoded form, signed by the underlying private key.
*
* @throws KeypairException if the CSR could not be generated
*/
byte[] createCertificateSigningRequest() throws KeypairException;
/**
* Returns the DER-encoded X.509 public key, generating a new private key if one has not already
* been created.
*
* @throws KeypairException if a private key could not be resolved
*/
byte[] getPublicKey() throws KeypairException;
/**
* Signs the given message with the private key (generating one if it has not yet been created)
* using ECDSA and returns a DER-encoded signature.
*
* @throws KeypairException if a private key could not be resolved, or the message could not be
* signed
*/
byte[] ecdsaSignMessage(byte[] message) throws KeypairException;
/** Encompassing exception to encapsulate errors thrown during operations. */
final class KeypairException extends Exception {
private static final long serialVersionUID = 2646523289554350914L;
/** Constructs an exception with the specified {@code msg} as the message. */
public KeypairException(String msg) {
super(msg);
}
/**
* Constructs an exception with the specified {@code msg} as the message and the provided {@code
* cause}.
*/
public KeypairException(String msg, Throwable cause) {
super(msg, cause);
}
}
}