Generate an an authentication key (symmetric-key cryptography)
public static generateAuthenticationKey ( string &$secretKey = '' ) : AuthenticationKey | ||
$secretKey | string | |
리턴 | AuthenticationKey |
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()); }
$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);