generateEncryptionKey() public static method

Generate an an encryption key (symmetric-key cryptography)
public static generateEncryptionKey ( string &$secretKey = '' ) : EncryptionKey
$secretKey string
return EncryptionKey
Exemplo n.º 1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $enc_key = KeyFactory::generateEncryptionKey();
     try {
         KeyFactory::save($enc_key, config('laracrypt.path'));
     } catch (\Throwable $t) {
         $this->error($t);
     }
     return $this->info("Your LaraCrypt encryption key has been generated.");
 }
Exemplo n.º 2
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());
 }
 public function it_can_create_new_auth_records($authenticationMapper, User $user5, AuthenticationRecordInterface $newAuth)
 {
     $newAuth->getSessionKey()->willReturn(KeyFactory::generateEncryptionKey()->getRawKeyMaterial());
     $newAuth->getUsername()->willReturn('email');
     $newAuth->getUserId()->willReturn(5);
     $user5->getId()->willReturn(5);
     $authenticationMapper->save(Argument::type(AuthenticationRecordInterface::class))->shouldBeCalled();
     $authenticationMapper->create(Argument::type('integer'), Argument::type('string'), Argument::type('string'), Argument::type('string'))->willReturn($newAuth);
     $this->create($user5, 'userC', 'beestring')->shouldBeAnInstanceOf(AuthenticationRecordInterface::class);
 }
 /**
  * Resalt a user's authentication table salt
  *
  * @param AuthenticationRecordInterface $auth
  *
  * @return AuthenticationRecordInterface
  */
 private function resetAuthenticationKey(AuthenticationRecordInterface $auth) : AuthenticationRecordInterface
 {
     $key = KeyFactory::generateEncryptionKey();
     $auth->setSessionKey($key->getRawKeyMaterial());
     $this->authenticationProvider->update($auth);
     return $auth;
 }
Exemplo n.º 5
0
             break;
         default:
             throw new \Error(\trk('errors.crypto.unknown_key_type', $keyConfig['type']));
     }
 } else {
     // We must generate this key/keypair at once:
     switch ($keyConfig['type']) {
         case 'EncryptionPublicKey':
         case 'SignaturePublicKey':
             throw new \Error(\trk('errors.crypto.cannot_generate_public_key'));
         case 'AuthenticationKey':
             $keys[$index] = KeyFactory::generateAuthenticationKey();
             KeyFactory::save($keys[$index], $path);
             break;
         case 'EncryptionKey':
             $keys[$index] = KeyFactory::generateEncryptionKey();
             KeyFactory::save($keys[$index], $path);
             break;
         case 'EncryptionSecretKey':
             $kp = KeyFactory::generateEncryptionKeyPair();
             $keys[$index] = $kp->getSecretKey();
             KeyFactory::save($keys[$index], $path);
             break;
         case 'SignatureSecretKey':
             $kp = KeyFactory::generateSignatureKeyPair();
             $keys[$index] = $kp->getSecretKey();
             KeyFactory::save($keys[$index], $path);
             break;
         case 'EncryptionKeyPair':
             $keys[$index] = KeyFactory::generateEncryptionKeyPair();
             KeyFactory::save($keys[$index], $path);
Exemplo n.º 6
0
<?php

/**
 * Created by PhpStorm.
 * User: Glenn
 * Date: 2016-05-27
 * Time: 11:22 AM
 */
include "/../vendor/autoload.php";
use ParagonIE\Halite\KeyFactory;
// Generate a new random encryption key:
$encryptionKey = KeyFactory::generateEncryptionKey();
// Saving a key to a file:
KeyFactory::save($encryptionKey, './sec/encryption.key');
Exemplo n.º 7
0
 /**
  * Generate encryption key and save the file
  *
  */
 public static function generateKey()
 {
     $enc_key = KeyFactory::generateEncryptionKey();
     KeyFactory::save($enc_key, config('laracrypt.path'));
 }