Content · Web Development · PHP

PHP sodium_crypto_box_keypair_from_secretkey_and_publickey() Function: Usage and Examples

sodium_crypto_box_keypair_from_secretkey_and_publickey extracts the public key from an encoded.

1 views Published Oct 17, 2026 Updated Oct 17, 2026 admin

sodium_crypto_box_keypair_from_secretkey_and_publickey extracts the public key from an encoded keypair.

The examples explain the data format, expected results and the difference between this API and nearby cryptographic operations.

What It Does


The operation is intended for: sodium_crypto_box_keypair_from_secretkey_and_publickey extracts the public key from an encoded keypair.

The sodium extension must be enabled.

Syntax and Return Value


sodium_crypto_box_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string
ParameterPurpose
$secret_key (string)A private secret key or cryptographic keypair, as required by the function.
$public_key (string)A public key that belongs to the intended, verified peer.

The declared return type is shown above. Errors can include false results or exceptions depending on this API: Keep secret keys private; the nonce must never repeat with the same key pair. A sealed box does not authenticate the sender.

Example 1: Basic Operation


The sender and receiver must use matching public and secret key material, not share private keys.

<?php
$message = "Account update";
$sender = sodium_crypto_box_keypair();
$receiver = sodium_crypto_box_keypair();
$combined = sodium_crypto_box_keypair_from_secretkey_and_publickey(sodium_crypto_box_secretkey($sender), sodium_crypto_box_publickey($receiver));
echo strlen($combined);

Example 2: A Different Use Case


The sender and receiver must use matching public and secret key material, not share private keys.

<?php
// Check the alternative case.
$message = "New order: 42";
$sender = sodium_crypto_box_keypair();
$receiver = sodium_crypto_box_keypair();
$combined = sodium_crypto_box_keypair_from_secretkey_and_publickey(sodium_crypto_box_secretkey($sender), sodium_crypto_box_publickey($receiver));
echo strlen($combined);

Practical Example: Checking the Result


The sender and receiver must use matching public and secret key material, not share private keys.

<?php
// Verify the expected behavior before using results.
$message = "Export completed";
$sender = sodium_crypto_box_keypair();
$receiver = sodium_crypto_box_keypair();
$combined = sodium_crypto_box_keypair_from_secretkey_and_publickey(sodium_crypto_box_secretkey($sender), sodium_crypto_box_publickey($receiver));
echo strlen($combined);

Important Behavior and Edge Cases


Keep secret keys private; the nonce must never repeat with the same key pair. A sealed box does not authenticate the sender.

The sender must use the receiver public key and its own secret key, and the receiver needs a complementary pair. Sealed boxes intentionally do not authenticate the sender.

Comparison with Related Functions


ApproachKey distinction
sodium_crypto_box_keypair_from_secretkey_and_publickeysodium_crypto_box_keypair_from_secretkey_and_publickey extracts the public key from an encoded keypair.
Related techniquesecretbox works with a single shared symmetric key rather than a public/secret key pair.

Common Beginner Mistakes


MistakeCorrect approach
Confusing this operation with a neighboring cryptographic or security mechanismsecretbox works with a single shared symmetric key rather than a public/secret key pair.
Ignoring a security prerequisite or failure caseKeep secret keys private; the nonce must never repeat with the same key pair. A sealed box does not authenticate the sender.

Key Takeaways


  • sodium_crypto_box_keypair_from_secretkey_and_publickey extracts the public key from an encoded keypair.
  • Keep secret keys private; the nonce must never repeat with the same key pair. A sealed box does not authenticate the sender.
  • secretbox works with a single shared symmetric key rather than a public/secret key pair.

Apply this behavior to a real application only after confirming the required extension, configuration and failure handling on the deployment runtime.

Share this resourceSend this page to someone who may find it useful.