github.com/0chain/gosdk@v1.17.11/zboxcore/encryption/scheme.go (about)

     1  package encryption
     2  
     3  // EncryptionScheme interface for encryption schemes
     4  type EncryptionScheme interface {
     5  	Initialize(mnemonic string) ([]byte, error)
     6  	InitializeWithPrivateKey(privateKey []byte) error
     7  	InitForEncryption(tag string)
     8  	InitForEncryptionWithPoint(tag, point string) error
     9  	InitForDecryption(tag string, encryptedKey string) error
    10  	InitForDecryptionWithPoint(tag, point string) error
    11  	Encrypt(data []byte) (*EncryptedMessage, error)
    12  	Decrypt(*EncryptedMessage) ([]byte, error)
    13  	ReDecrypt(D *ReEncryptedMessage) ([]byte, error)
    14  	GetEncryptedKey() string
    15  	GetReGenKey(encPublicKey string, tag string) (string, error)
    16  	ReEncrypt(encMsg *EncryptedMessage, reGenKey string, clientPublicKey string) (*ReEncryptedMessage, error)
    17  	GetPublicKey() (string, error)
    18  	GetPrivateKey() (string, error)
    19  	GetEncryptedKeyPoint() string
    20  }
    21  
    22  // NewEncryptionScheme create a new encryption scheme
    23  func NewEncryptionScheme() EncryptionScheme {
    24  	return new(PREEncryptionScheme)
    25  }
    26  
    27  // EncryptedMessage encrypted message structure
    28  type EncryptedMessage struct {
    29  	EncryptedKey    string
    30  	EncryptedData   []byte
    31  	ReEncryptionKey string
    32  	MessageChecksum string
    33  	OverallChecksum string
    34  }