generateAuthenticationKey() public static method

Generate an an authentication key (symmetric-key cryptography)
public static generateAuthenticationKey ( string &$secretKey = '' ) : AuthenticationKey
$secretKey string
return AuthenticationKey
Beispiel #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());
 }
Beispiel #2
0
             $keys[$index] = KeyFactory::loadEncryptionKeyPair($path);
             break;
         case 'SignatureKeyPair':
             $keys[$index] = KeyFactory::loadSignatureKeyPair($path);
             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);