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 }