CryptoApi
Swift wrapper for privmx.NativeCryptoApiWrapper
.
This class provides cryptographic functions such as key generation, encryption, and decryption, as well as signing data. It wraps the underlying C++ implementation for use in Swift.
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).
Params
randomSeed
String?
An optional seed string to generate the private key. If nil
, a random seed is used.
Returns
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.
Returns
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.
Params
keyPriv
String
The private key in WIF format (Wallet Import Format) from which the public key will be derived.
Returns
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.
Params
password
String
The base string (password) used for private key generation.
salt
String
A string used as salt for private key generation.
Returns
String
·
The derived private key in WIF format (Wallet Import Format) as a String
.
derivePrivateKey2(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.
Params
password
String
The base string (password) used for private key generation.
salt
String
A string used as salt for private key generation.
Returns
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).
Params
data
Data
The data to be signed, provided as Data
.
privateKey
String
The private key (WIF format) used for signing the data.
Returns
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.
Params
data
Data
The data to be encrypted, provided as Data
.
symmetricKey
Data
The 256-bit symmetric key used for AES encryption.
Returns
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.
Params
data
Data
The encrypted data to be decrypted, provided as Data
.
symmetricKey
Data
The 256-bit symmetric key used for AES decryption.
Returns
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).
Params
pemKey
String
The private key in PEM format.
Returns
String
·
The converted private key in WIF format as a String
.
verifySignature(data:signature:publicKey:)
Params
data
Data
signature
Data
publicKey
String
Returns
Bool
·
verifySignature(_:of:with:)
Validate a signature of data using given key.
Params
signature
Data
signature to be verified.
data
Data
buffer containing the data signature of which is being verified.
publicKey
String
public ECC key in BASE58DER format used to validate data.
Returns
Bool
·
data validation result.
We use cookies on our website. We use them to ensure the proper functioning of the site and, if you agree, for purposes we set, such as analytics or marketing.