$keys[$index] = KeyFactory::loadEncryptionPublicKey($path);
break;
case 'EncryptionSecretKey':
$keys[$index] = KeyFactory::loadEncryptionSecretKey($path);
break;
case 'SignaturePublicKey':
$keys[$index] = KeyFactory::loadSignaturePublicKey($path);
break;
case 'SignatureSecretKey':
$keys[$index] = KeyFactory::loadSignatureSecretKey($path);
break;
case 'EncryptionKeyPair':
$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':