package caps import ( "context" abiv1 "git.dev.alexdunmow.com/block/pluginsdk/abi/v1" "git.dev.alexdunmow.com/block/pluginsdk/crypto" ) // cryptoStub implements crypto.Crypto over crypto.* capability calls. The // interface takes no context; host calls run under the invoke deadline. type cryptoStub struct{ base } var _ crypto.Crypto = (*cryptoStub)(nil) func (s *cryptoStub) EncryptSecret(plaintext string) (string, error) { resp := &abiv1.CryptoEncryptSecretResponse{} if err := s.invoke(context.Background(), "encrypt_secret", &abiv1.CryptoEncryptSecretRequest{Plaintext: plaintext}, resp); err != nil { return "", err } return resp.GetCiphertext(), nil } func (s *cryptoStub) DecryptSecret(ciphertext string) (string, error) { resp := &abiv1.CryptoDecryptSecretResponse{} if err := s.invoke(context.Background(), "decrypt_secret", &abiv1.CryptoDecryptSecretRequest{Ciphertext: ciphertext}, resp); err != nil { return "", err } return resp.GetPlaintext(), nil }