github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/lib/crypto/contract.go (about) 1 package crypto 2 3 import ( 4 "io" 5 6 "github.com/catalyzeio/gcm/gcm" 7 ) 8 9 // ICrypto 10 type ICrypto interface { 11 DecryptFile(encryptedFilePath, key, iv, outputFilePath string) error 12 EncryptFile(plainFilePath string, key, iv []byte) (string, error) 13 NewEncryptReader(reader io.Reader, key, iv []byte) (*gcm.EncryptReader, error) 14 NewDecryptWriteCloser(writeCloser io.WriteCloser, key, iv string) (*gcm.DecryptWriteCloser, error) 15 Hex(src []byte, maxLen int) []byte 16 Unhex(src []byte, maxLen int) []byte 17 Base64Encode(src []byte, maxLen int) []byte 18 Base64Decode(src []byte, maxLen int) []byte 19 } 20 21 // SCrypto is an implementor of ICrypto 22 type SCrypto struct{} 23 24 // New creates a new instance of ICrypto 25 func New() ICrypto { 26 return &SCrypto{} 27 }