7 // Cipher is interface for encryption or decryption of an object
8 type Cipher interface {
13 // Encrypter is interface with only encrypt method
14 type Encrypter interface {
15 Encrypt(io.Reader) io.Reader
18 // Decrypter is interface with only decrypt method
19 type Decrypter interface {
20 Decrypt(io.Reader) io.Reader
23 // CryptoEncrypter provides close method for Encrypter
24 type CryptoEncrypter struct {
30 // Close lets the CryptoEncrypter satisfy io.ReadCloser interface
31 func (rc *CryptoEncrypter) Close() error {
33 if closer, ok := rc.Body.(io.ReadCloser); ok {
39 // Read lets the CryptoEncrypter satisfy io.ReadCloser interface
40 func (rc *CryptoEncrypter) Read(b []byte) (int, error) {
44 return rc.Encrypter.Read(b)
47 // CryptoDecrypter provides close method for Decrypter
48 type CryptoDecrypter struct {
54 // Close lets the CryptoDecrypter satisfy io.ReadCloser interface
55 func (rc *CryptoDecrypter) Close() error {
57 if closer, ok := rc.Body.(io.ReadCloser); ok {
63 // Read lets the CryptoDecrypter satisfy io.ReadCloser interface
64 func (rc *CryptoDecrypter) Read(b []byte) (int, error) {
68 return rc.Decrypter.Read(b)