|  Download Crypto (abstract)Namespace: \ParagonIE\Halite\Asymmetric MethodsgetSharedSecret()
> publicgetSharedSecret(EncryptionSecretKey$privateKey,EncryptionPublicKey$publicKey,$get_as_object = false) :EncryptionKey This method calculates a shared EncryptionKeyusing Elliptic Curve Diffie Hellman key agreement over Curve25519. encrypt()
> publicencrypt(string $source,EncryptionSecretKey$ourPrivateKey,EncryptionPublicKey$theirPublicKey,boolean $raw = false) :string This method will: 
Calculate a shared symmetric encryption key between your secret key and your 
recipient's public key.
Generate a random HKDF salt.
Split the shared secret using salted HKDF.
Generate a random nonce.
Encrypt your plaintext (`$source`) with the derived encryption key (step 3).
MAC the ciphertext (step 5), along with the current library version, the HKDF 
salt, and the nonce, with the derived authentication key (step 3).
Return the output of step 6 either as raw binary or as a hex-encoded string.
 decrypt()
> publicdecrypt(string $source,EncryptionSecretKey$ourPrivateKey,EncryptionPublicKey$theirPublicKey,boolean $raw = false) :string This method will: 
If we aren't expecting raw data, we treat `$source` as a hex string and
decode it to raw binary.
Calculate a shared symmetric encryption key between your secret key and the
sender's public key.
Parse the library version tag, HKDF salt, and nonce from the message.
Split the shared secret using salted HKDF.
Verify the MAC using the derived authentication key (step 4).
If step 5 is successful, decrypt the ciphertext with the derived encryption 
key (step 4).
Return what should be the original plaintext.
 seal()
> publicseal(string $source,EncryptionPublicKey$publicKey,boolean $raw = false) :string Anonymous public-key encryption. Encrypt a message with your recipient's public
key and they can use their secret key to decrypt it. The actual underlying protocol is \Sodium\crypto_box_seal(). unseal()
> publicunseal(string $source,EncryptionSecretKey$secretKey,boolean $raw = false) :string Anonymous public-key decryption. Decrypt a sealed message with your secret key. The actual underlying protocol is \Sodium\crypto_box_seal_open(). sign()
> publicsign(string $message,SignatureSecretKey$secretKey,boolean $raw = false) :string Calculates a digital signature of $message, using\Sodium\crypto_sign(). verify()
> publicverify(string $message,SignaturePublicKey$secretKey,string $signature,boolean $raw = false) :boolean Does the signature match the contents of the message, for the given public key? |