PHP Classes

File: src/CryptographyKeys/SharedAuthenticationKey.php

Recommend this page to a friend!
  Classes of Scott Arciszewski   sapient   src/CryptographyKeys/SharedAuthenticationKey.php   Download  
File: src/CryptographyKeys/SharedAuthenticationKey.php
Role: Class source
Content type: text/plain
Description: Class source
Class: sapient
Add a security layer to server to server requests
Author: By
Last change:
Date: 6 years ago
Size: 858 bytes
 

Contents

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

use
ParagonIE\Sapient\CryptographyKey;

/**
 * Class SharedAuthenticationKey
 * @package ParagonIE\Sapient
 */
class SharedAuthenticationKey extends CryptographyKey
{
   
/**
     * SharedAuthenticationKey constructor.
     * @param string $key
     * @throws \RangeException
     */
   
public function __construct(string $key)
    {
        if (\
ParagonIE_Sodium_Core_Util::strlen($key) !== SODIUM_CRYPTO_AUTH_KEYBYTES) {
            throw new \
RangeException('Key is not the correct size');
        }
       
$this->key = $key;
    }

   
/**
     * @return SharedAuthenticationKey
     */
   
public static function generate(): SharedAuthenticationKey
   
{
        return new
SharedAuthenticationKey(
            \
random_bytes(SODIUM_CRYPTO_AUTH_KEYBYTES)
        );
    }
}