ParagonIE\Halite\KeyFactory::generateAuthenticationKey PHP Method

generateAuthenticationKey() public static method

Generate an an authentication key (symmetric-key cryptography)
public static generateAuthenticationKey ( string &$secretKey = '' ) : AuthenticationKey
$secretKey string
return AuthenticationKey
    public static function generateAuthenticationKey(string &$secretKey = '') : AuthenticationKey
    {
        $secretKey = \Sodium\randombytes_buf(\Sodium\CRYPTO_AUTH_KEYBYTES);
        return new AuthenticationKey(new HiddenString($secretKey));
    }

Usage Example

Example #1
0
 public function testKeyTypes()
 {
     $key = KeyFactory::generateAuthenticationKey();
     $this->assertFalse($key->isAsymmetricKey());
     $this->assertFalse($key->isEncryptionKey());
     $this->assertTrue($key->isSecretKey());
     $this->assertTrue($key->isSigningKey());
     $this->assertFalse($key->isPublicKey());
     $key = KeyFactory::generateEncryptionKey();
     $this->assertFalse($key->isAsymmetricKey());
     $this->assertTrue($key->isEncryptionKey());
     $this->assertTrue($key->isSecretKey());
     $this->assertFalse($key->isSigningKey());
     $this->assertFalse($key->isPublicKey());
     $keypair = KeyFactory::generateEncryptionKeyPair();
     $enc_secret = $keypair->getSecretKey();
     $enc_public = $keypair->getPublicKey();
     $this->assertTrue($enc_secret->isAsymmetricKey());
     $this->assertTrue($enc_secret->isEncryptionKey());
     $this->assertTrue($enc_secret->isSecretKey());
     $this->assertFalse($enc_secret->isSigningKey());
     $this->assertFalse($enc_secret->isPublicKey());
     $this->assertTrue($enc_public->isAsymmetricKey());
     $this->assertTrue($enc_public->isEncryptionKey());
     $this->assertFalse($enc_public->isSecretKey());
     $this->assertFalse($enc_public->isSigningKey());
     $this->assertTrue($enc_public->isPublicKey());
     $keypair = KeyFactory::generateSignatureKeyPair();
     $sign_secret = $keypair->getSecretKey();
     $sign_public = $keypair->getPublicKey();
     $this->assertTrue($sign_secret->isAsymmetricKey());
     $this->assertFalse($sign_secret->isEncryptionKey());
     $this->assertTrue($sign_secret->isSecretKey());
     $this->assertTrue($sign_public->isSigningKey());
     $this->assertFalse($sign_secret->isPublicKey());
     $this->assertTrue($sign_public->isAsymmetricKey());
     $this->assertFalse($sign_public->isEncryptionKey());
     $this->assertFalse($sign_public->isSecretKey());
     $this->assertTrue($sign_public->isSigningKey());
     $this->assertTrue($sign_public->isPublicKey());
 }
All Usage Examples Of ParagonIE\Halite\KeyFactory::generateAuthenticationKey