ErrCredUnavailable is a sentinel error that indicates ECP Cred is unavailable, possibly due to missing config or missing binary path.
var errors.New("Cred is unavailable")=
A Connection wraps a pair of unidirectional streams as an io.ReadWriteCloser.
type Connection struct { io.ReadCloser io.WriteCloser }
func (c *Connection) Close() error
Close closes c's underlying ReadCloser and WriteCloser.
DecryptArgs contains arguments to for a Decrypt API call.
type DecryptArgs struct { Ciphertext []byte // The ciphertext to decrypt. Opts crypto.DecrypterOpts // Options for decryption. Ex: an instance of *rsa.OAEPOptions. }
EncryptArgs contains arguments for an Encrypt API call.
type EncryptArgs struct { Plaintext []byte // The plaintext to encrypt. Opts any // Options for encryption. Ex: an instance of crypto.Hash. }
Key implements credential.Credential by holding the executed signer subprocess.
type Key struct {
// contains filtered or unexported fields
}
func Cred(configFilePath string) (*Key, error)
Cred spawns a signer subprocess that listens on stdin/stdout to perform certificate related operations, including signing messages with the private key.
The signer binary path is read from the specified configFilePath, if provided. Otherwise, use the default config file path.
The config file also specifies which certificate the signer should use.
func (k *Key) CertificateChain() [][]byte
CertificateChain returns the credential as a raw X509 cert chain. This contains the public key.
func (k *Key) Close() error
Close closes the RPC connection and kills the signer subprocess. Call this to free up resources when the Key object is no longer needed.
func (k *Key) Decrypt(_ io.Reader, msg []byte, opts crypto.DecrypterOpts) (plaintext []byte, err error)
Decrypt decrypts a ciphertext msg into plaintext, using the specified decrypter opts. Implements crypto.Decrypter interface.
func (k *Key) Encrypt(_ io.Reader, msg []byte, opts any) (ciphertext []byte, err error)
Encrypt encrypts a plaintext msg into ciphertext, using the specified encrypt opts.
func (k *Key) Public() crypto.PublicKey
Public returns the public key for this Key.
func (k *Key) Sign(_ io.Reader, digest []byte, opts crypto.SignerOpts) (signed []byte, err error)
Sign signs a message digest, using the specified signer opts. Implements crypto.Signer interface.
SignArgs contains arguments for a Sign API call.
type SignArgs struct { Digest []byte // The content to sign. Opts crypto.SignerOpts // Options for signing. Must implement HashFunc(). }