PHP Classes

File: src/Asymmetric/EncryptionSecretKey.php

Recommend this page to a friend!
  Classes of Scott Arciszewski   Halite   src/Asymmetric/EncryptionSecretKey.php   Download  
File: src/Asymmetric/EncryptionSecretKey.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Halite
Perform cryptography operations with libsodium
Author: By
Last change: For version 2, let's use strict types!
Merge branch 'v2.0' of https://github.com/paragonie/halite into v2.0

Conflicts:
src/Symmetric/Crypto.php
Date: 8 years ago
Size: 1,007 bytes
 

Contents

Class file image Download
<?php
declare(strict_types=1);
namespace
ParagonIE\Halite\Asymmetric;

use \
ParagonIE\Halite\Alerts\InvalidKey;
use \
ParagonIE\Halite\Util as CryptoUtil;

final class
EncryptionSecretKey extends SecretKey
{
   
/**
     * @param string $keyMaterial - The actual key data
     * @param bool $signing - Is this a signing key?
     */
   
public function __construct(string $keyMaterial = '', ...$args)
    {
        if (
CryptoUtil::safeStrlen($keyMaterial) !== \Sodium\CRYPTO_BOX_SECRETKEYBYTES) {
            throw new
InvalidKey(
               
'Encryption secret key must be CRYPTO_BOX_SECRETKEYBYTES bytes long'
           
);
        }
       
parent::__construct($keyMaterial, false);
    }
   
   
/**
     * See the appropriate derived class.
     *
     * @return SignaturePublicKey
     */
   
public function derivePublicKey()
    {
       
$publicKey = \Sodium\crypto_box_publickey_from_secretkey(
           
$this->get()
        );
        return new
EncryptionPublicKey($publicKey);
    }
}