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  }