PrivMXCrypto
Protocol declaring cryptographic operations using Swift types.
Methods
generatePrivateKey(withSeed:)
Generates a new Private Key, which can be used for accessing PrivMX Bridge.
This method generates a private key using an optional base string (seed) for added randomness. The generated key is returned in WIF (Wallet Import Format).
func generatePrivateKey ( withSeed randomSeed : String ? ) throws - > String
Params Name Type Description randomSeed String?
An optional seed string to generate the private key. If `nil`, a random seed is used.
Returns Type Description String
A WIF formatted private key as a `String`.
generateKeySymmetric()
Generates a new Symmetric Key for AES encryption.
This method creates a 256-bit symmetric key, which can be used for AES encryption and decryption.
func generateKeySymmetric ( ) throws - > Data
Returns Type Description Data
A 256-bit symmetric key as `Data`.
derivePublicKey(from:)
Derives a Public Key from a given Private Key.
This method derives the corresponding public key from a provided private key, formatted in WIF.
func derivePublicKey ( from keyPriv : String ) throws - > String
Params Name Type Description keyPriv String
The private key in WIF format (Wallet Import Format) from which the public key will be derived.
Returns Type Description String
The derived public key as a `String`.
derivePrivateKey(from:and:)
Deterministically derives a Private Key from a password and salt.
This method generates a private key using a combination of a password and salt. The resulting private key is derived in a deterministic way, ensuring the same password and salt will always produce the same private key.
func derivePrivateKey ( from password : String , and salt : String ) throws - > String
Params Name Type Description password String
The base string (password) used for private key generation. salt String
A string used as salt for private key generation.
Returns Type Description String
The derived private key in WIF format (Wallet Import Format) as a `String`.
signData(_:with:)
Signs the given data using a Private Key.
This method creates a digital signature for the provided data using a specified private key (in WIF format).
func signData ( _ data : Data , with privateKey : String ) throws - > Data
Params Name Type Description data Data
The data to be signed, provided as `Data`. privateKey String
The private key (WIF format) used for signing the data.
Returns Type Description Data
The signed data as `Data`.
encryptDataSymmetric(_:with:)
Encrypts data using AES symmetric encryption.
This method encrypts the provided data using AES encryption with a 256-bit symmetric key.
func encryptDataSymmetric ( _ data : Data , with symmetricKey : Data ) throws - > Data
Params Name Type Description data Data
The data to be encrypted, provided as `Data`. symmetricKey Data
The 256-bit symmetric key used for AES encryption.
Returns Type Description Data
The encrypted data as `Data`.
decryptDataSymmetric(_:with:)
Decrypts data using AES symmetric encryption.
This method decrypts the provided data using AES encryption with a 256-bit symmetric key.
func decryptDataSymmetric ( _ data : Data , with symmetricKey : Data ) throws - > Data
Params Name Type Description data Data
The encrypted data to be decrypted, provided as `Data`. symmetricKey Data
The 256-bit symmetric key used for AES decryption.
Returns Type Description Data
The decrypted data as `Data`.
convertPEMKeyToWIFKey(_:)
Converts a PEM formatted key to WIF format.
This method converts a private key from PEM (Privacy-Enhanced Mail) format to Wallet Import Format (WIF).
func convertPEMKeyToWIFKey ( _ keyPEM : String ) throws - > String
Params Name Type Description keyPEM String
Returns Type Description String
The converted private key in WIF format as a `String`.
verifySignature(data:signature:publicKey:)
Validate a signature of data using given key.
func verifySignature ( data : Data , signature : Data , publicKey : String ) throws - > Bool
Params Name Type Description data Data
buffer containing the data signature of which is being verified. signature Data
signature to be verified. publicKey String
public ECC key in BASE58DER format used to validate data.
Returns Type Description Bool
data validation result.