github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/crypto/cipher/cipher.go (about)

     1  // Copyright (C) 2017 go-nebulas authors
     2  //
     3  // This file is part of the go-nebulas library.
     4  //
     5  // the go-nebulas library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // the go-nebulas library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  // GNU General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU General Public License
    16  // along with the go-nebulas library.  If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  
    19  package cipher
    20  
    21  // Cipher encrypt cipher
    22  type Cipher struct {
    23  	encrypt Encrypt
    24  }
    25  
    26  // NewCipher returns a new cipher
    27  func NewCipher() *Cipher {
    28  	c := new(Cipher)
    29  	c.encrypt = new(Scrypt)
    30  	return c
    31  }
    32  
    33  
    34  // Encrypt scrypt encrypt
    35  func (c *Cipher) Encrypt(data []byte, passphrase []byte) ([]byte, error) {
    36  	return c.encrypt.Encrypt(data, passphrase)
    37  }
    38  
    39  
    40  // EncryptKey encrypt key with address
    41  func (c *Cipher) EncryptKey(address string, data []byte, passphrase []byte) ([]byte, error) {
    42  	return c.encrypt.EncryptKey(address, data, passphrase)
    43  }
    44  
    45  // Decrypt decrypts data, returning the origin data
    46  func (c *Cipher) Decrypt(data []byte, passphrase []byte) ([]byte, error) {
    47  	return c.encrypt.Decrypt(data, passphrase)
    48  }
    49  
    50  // DecryptKey decrypts a key, returning the private key itself.
    51  func (c *Cipher) DecryptKey(keyjson []byte, passphrase []byte) ([]byte, error) {
    52  	return c.encrypt.DecryptKey(keyjson, passphrase)
    53  }