mirror of https://github.com/MISP/MISP
add: api tests for crypto keys
parent
0d28194c84
commit
4219cca07a
|
@ -13,3 +13,4 @@ docker/run/
|
||||||
config.json
|
config.json
|
||||||
phpunit.xml
|
phpunit.xml
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
.gnupg
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
class CryptographicKeysFixture extends TestFixture
|
||||||
|
{
|
||||||
|
public $connection = 'test';
|
||||||
|
|
||||||
|
public const CRYPTOGRAPHIC_KEY_REGULAR_USER_ID = 1000;
|
||||||
|
public const CRYPTOGRAPHIC_KEY_REGULAR_USER_UUID = 'a2c4d61a-b06e-4390-b09d-a64d54225565';
|
||||||
|
|
||||||
|
public function init(): void
|
||||||
|
{
|
||||||
|
$faker = \Faker\Factory::create();
|
||||||
|
$key_data = '-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: OpenPGP v2.0.76\nComment: foobar\n\nxo0EZF484AEEAMYH6aqsoXKOaJ61efIneGc789aOm78ITjiwO0ZzuofLRu3Zdgbq\nKFFpSgubBGIHeZw2wz76vlU5bATJn/pE8bBHBT03HN+P3lOB/mIOcJzza95y8YV4\n3qOUF04bw4gZFBzSmwMGsQr1u5xA90aaYmD2t9GSHHXOLKXNYSaFCxtTABEBAAHN\nFFVzZXIgPHVzZXJAbWlzcC5jb20+wroEEwEKACQFAmRePOACGy8DCwkHAxUKCAIe\nAQIXgAMWAgECGQEFCQAAAAAACgkQxtKFjHNXIf4XYAQAxQp/ZLnVpPKaj3kOk0b1\nbtNtPTJQOY3k6B9OYWCb3rr1/uziTasr/Z7dcBbr5/80EVjR9EJ2CnRV1xpDWKuu\nyI6QBg/MRNRtkJg1DilUVqaL5SraK8q7C+cPoO+IwvbJ+GtGu1gh60DOc7rKwYuL\nguc8GVRkWIUidauDFp98BAHOjQRkXjzgAQQA2oSVTAbctL//xwQnEVMwlAJ9uj8E\nM4eS/wUQRHXOa54ti3q0Xt23oNVEQtprBp93XtIeW2rZfVqHBIxp2RDSDZcAgwzf\nEfG6z7ykdgWnTm8NwfZRZETMcfkDA07O74Lj8PjuEj6HRr4lPSacT/aL2H7dMrDF\nC4SvdDQoN5oM5L8AEQEAAcLAgwQYAQoADwUCZF484AUJAAAAAAIbLgCoCRDG0oWM\nc1ch/p0gBBkBCgAGBQJkXjzgAAoJELsL/SDS6/ak1uYEAKoZ/hZ+1SlVcsi9Ihar\nq3P6vB7ZAXc/YmLdwXCJRoknAdGcvDsxGVu9vV74PVyU57OqEnqFiYaCYYm2LjBf\nMWODx1UL8ShCcTyLNntI58uytUE80F5qEdvTzj2qI5WuD/aZ7UHXQiE4/EPO154e\nVOGf0rnzCJF2eZEdCb8eEPRrVjED/RqVuQogoidrpJ9um2l5tfWkNjld2HMHdK1h\nl4XqF+W0sEQdM0Zlsr1JGpAIYSi0PDZLb3Q2vNAHk4dJhKgSw9P+6IRLDOUGhg1L\n1OKFM3CnCDiPRl51SuzAngvkbjwLBrCrCZ12dmsnjLNbewjf9BJxV6wxNXj2+fnA\n2E+3BHm5zo0EZF484AEEAMtGgS8KgZs4kDT/zJEiRmPIikN2E9xzufLYR94Md5jH\nqceyZN56sEBlV0kAstyiHusFR3SiQT/MUFUEnO3xlR9XNZx0ka9heT+5sbL1099f\nbbl+trJDAkWo5OuOHYNkEXRnhHOAl/DaAvgVtAhn191cdk9PqhT0qgTQCweR35qb\nABEBAAHCwIMEGAEKAA8FAmRePOAFCQAAAAACGy4AqAkQxtKFjHNXIf6dIAQZAQoA\nBgUCZF484AAKCRBHg4xdjs5JtWoVA/0fJhnCGqdDu7SAM3RlekEZa+ygBTgI5UFJ\nQC8Rtcf63dLzf5tz63CGCRBXemkpkz/AWbgxQX6BFUa8jrYMQp0ZpCZXi8x4c3d1\n5P0FrechOUbv30twv1xZmDxvvgN476PGVTGH3uDwELIa36h1VKC1rkeWHBU3p2yH\nssoA6ELxxnOiA/0YMDUvs7DZ3asWTpA7Vpee1YWlDcyudEQ9p1nmPgOFuLETLhpK\nhfvV5bgxlFgptDdtZ/Y9TioprbHcu1B5pB98cLStccpEuUn403cs3NgvHjfhdp9z\nJNSdGU4DKNkAnSipVBqGocCZFqHkXltjVY0Q49TITJ+t1NJSSGQY/wVxsw==\n=5n9/\n-----END PGP PUBLIC KEY BLOCK-----';
|
||||||
|
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => self::CRYPTOGRAPHIC_KEY_REGULAR_USER_ID,
|
||||||
|
'uuid' => self::CRYPTOGRAPHIC_KEY_REGULAR_USER_UUID,
|
||||||
|
'timestamp' => $faker->dateTime()->getTimestamp(),
|
||||||
|
'parent_id' => UsersFixture::USER_REGULAR_USER_ID,
|
||||||
|
'parent_type' => 'User',
|
||||||
|
'key_data' => $key_data,
|
||||||
|
'type' => 'pgp',
|
||||||
|
'revoked' => 0,
|
||||||
|
'fingerprint' => ''
|
||||||
|
]
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Test\TestCase\Api\CryptographicKeys;
|
||||||
|
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
use App\Test\Fixture\AuthKeysFixture;
|
||||||
|
use App\Test\Helper\ApiTestTrait;
|
||||||
|
|
||||||
|
class AddCryptographicKeyApiTest extends TestCase
|
||||||
|
{
|
||||||
|
use ApiTestTrait;
|
||||||
|
|
||||||
|
protected const ENDPOINT = '/cryptographic-keys/add/%s/%s';
|
||||||
|
|
||||||
|
protected $fixtures = [
|
||||||
|
'app.Organisations',
|
||||||
|
'app.Users',
|
||||||
|
'app.AuthKeys',
|
||||||
|
'app.CryptographicKeys'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function testAddCryptographicKey(): void
|
||||||
|
{
|
||||||
|
$this->skipOpenApiValidations();
|
||||||
|
|
||||||
|
$this->setAuthToken(AuthKeysFixture::ADMIN_API_KEY);
|
||||||
|
|
||||||
|
$url = sprintf(self::ENDPOINT, 'User', 1);
|
||||||
|
|
||||||
|
$pgp_key = "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: OpenPGP v2.0.76\nComment: foobar\n\nxo0EZF4jyAEEAMCyxkNt4fo1FKoHs9MM0/T5GQMphmWbaBN7Rednng9WWgICQAq4\nnGn2a0uTJXH3aleej9udK10J3itT+OO8yPA2h79O/6Nfxg6rnEaYpNoEsymjDxZU\nHOBPCNzsBfjC6xwQ7LQ4gARiOmmgrej1uNZTlbs1DhlbhZ1UatfYx+A7ABEBAAHN\nFUZvbyBCYXIgPGZvb0BiYXIuY29tPsK6BBMBCgAkBQJkXiPIAhsvAwsJBwMVCggC\nHgECF4ADFgIBAhkBBQkAAAAAAAoJEDGhkzanZjD/v8AEAJKEjSAk/NWKofOdOA4S\nvMPOXehuZ8MI7yL5WOYmWSpYSZPwmexwNNgjf/tjG6NOABuxti8nHxErNVHRHl60\n5LjlQfeplwjieFoz+XXJKKFbtpqxiaadxgO+krplygnMwCQdQV9BjJ1d7J7O5TNw\n4rswxI3CWAFWf/8uLmuevkdmzo0EZF4jyAEEANhoi9s74ts3dDktzdBd7wRu5f0r\nedHOj0wS72lCxr/wmojzIU5RMYwmNmKhrzht7LgQqqdYdSoPdB3yg3/awZhfihAD\nO+ONMhwrL2E+Fr90JH4qCtn4OgcGtulrA3dE/LzpzfkKa5dazXDmYO+NaYr6WBMM\n3QljcnuWDjxWhrnXABEBAAHCwIMEGAEKAA8FAmReI8gFCQAAAAACGy4AqAkQMaGT\nNqdmMP+dIAQZAQoABgUCZF4jyAAKCRDtPILTQY19iy2bBACjRXd4LRfxNQFnU19r\nbiXyfQzFgm0cS5GfhrYPARGHDKiBuEcAXobk7nZB44zTXM4H8gqte6M+991DzclL\nX07MZkIe/XFeANgQ6ER5yiTgPBnHU4TzQUTpw/TU5siqdm9wsE8cI3r9Dv5Efw+A\n0vEyepIbakIu3wVZu9QFYyd/KjkWBACRobSygYUQN43knI83+Bo09aNTJF8eQ68k\n2zrlnpJruskhgwHjOg7WWi7Q+RCsTKrx735fnf+LlMa5DtXpRAAW2/c8pstjeTnb\nMfGlWjOaR/g9OsQMWn0gt+dQoEsMJPHkzng9d3dMQBcxHiWyZd32et1uV3T9sswY\n2uYWMNvOP86NBGReI8gBBADIY6kuza0SKcUQ5rUZMUNs0iiM4ReleVO6W4HXG8aR\n9jfj2OSaafw+UeuKh73yH0e+0vB+0NP6XdLam/Ne5+vZUXtlW03F/Nd8j2xZF7iJ\nUBw1kCFvLEAF63qvyZXGLOdFe4GFginlvS+2f1gV8BCn15k1hqPxMd38ZvH6QXUr\nEQARAQABwsCDBBgBCgAPBQJkXiPIBQkAAAAAAhsuAKgJEDGhkzanZjD/nSAEGQEK\nAAYFAmReI8gACgkQKd6KLuhHZfkYWwQAlaXK1f2m40L6F4jsA+LNL89PzNPlE3il\n36dQ3kDA4enlKSUjNT9Zbkgl+QQOSnO3u75HH09ZEU293qanzDO790dLHou0Y9cF\nJD0UU6yIqpl+Swsm85F5q5HiRqrR0Lr8iaMbaMcu3zrOE01g6byKrJbtji7TeSNo\n0SEvX6nBkAtBggP8D82Qcx5hZafofB8zT/iBYx5kLKVJKUbRD5VDfZid9KR1ERHc\ndNXLaD1yEAWLGYd6UnExlw5AulW8ejdyZNq7HRmJmaXMX2RhjhHZWz3NzzBoxM4o\nNm+/4L6MlU1uiDmrOZ5tQu3LxNxn3oqWKUH457uDiKCn4WTO9yET00kFvOE=\n=DCP7\n-----END PGP PUBLIC KEY BLOCK-----\n";
|
||||||
|
|
||||||
|
$this->post(
|
||||||
|
$url,
|
||||||
|
[
|
||||||
|
'type' => 'pgp',
|
||||||
|
'key_data' => $pgp_key
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertResponseOk();
|
||||||
|
$this->assertDbRecordExists('CryptographicKeys', ['key_data' => $pgp_key]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Test\TestCase\Api\CryptographicKeys;
|
||||||
|
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
use App\Test\Fixture\AuthKeysFixture;
|
||||||
|
use App\Test\Fixture\CryptographicKeysFixture;
|
||||||
|
use App\Test\Helper\ApiTestTrait;
|
||||||
|
|
||||||
|
class DeleteCryptographicKeyApiTest extends TestCase
|
||||||
|
{
|
||||||
|
use ApiTestTrait;
|
||||||
|
|
||||||
|
protected const ENDPOINT = '/cryptographic-keys/delete';
|
||||||
|
|
||||||
|
protected $fixtures = [
|
||||||
|
'app.Organisations',
|
||||||
|
'app.Users',
|
||||||
|
'app.AuthKeys',
|
||||||
|
'app.CryptoGraphicKeys'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function testDeleteCryptographicKeyByUUID(): void
|
||||||
|
{
|
||||||
|
$this->skipOpenApiValidations();
|
||||||
|
|
||||||
|
$this->setAuthToken(AuthKeysFixture::ADMIN_API_KEY);
|
||||||
|
$url = sprintf('%s/%s', self::ENDPOINT, CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_ID);
|
||||||
|
$this->delete($url);
|
||||||
|
|
||||||
|
$this->assertResponseOk();
|
||||||
|
$this->assertDbRecordNotExists('CryptographicKeys', ['uuid' => CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_UUID]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteCryptographicKeyById(): void
|
||||||
|
{
|
||||||
|
$this->skipOpenApiValidations();
|
||||||
|
|
||||||
|
$this->setAuthToken(AuthKeysFixture::ADMIN_API_KEY);
|
||||||
|
$url = sprintf('%s/%s', self::ENDPOINT, CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_ID);
|
||||||
|
$this->delete($url);
|
||||||
|
|
||||||
|
$this->assertResponseOk();
|
||||||
|
$this->assertDbRecordNotExists('CryptographicKeys', ['uuid' => CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_UUID]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Test\TestCase\Api\CryptographicKeys;
|
||||||
|
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
use App\Test\Fixture\AuthKeysFixture;
|
||||||
|
use App\Test\Fixture\CryptographicKeysFixture;
|
||||||
|
use App\Test\Helper\ApiTestTrait;
|
||||||
|
|
||||||
|
class ViewCryptographicKeyApiTest extends TestCase
|
||||||
|
{
|
||||||
|
use ApiTestTrait;
|
||||||
|
|
||||||
|
protected const ENDPOINT = '/cryptographic-keys/view';
|
||||||
|
|
||||||
|
protected $fixtures = [
|
||||||
|
'app.Organisations',
|
||||||
|
'app.Users',
|
||||||
|
'app.AuthKeys',
|
||||||
|
'app.CryptographicKeys'
|
||||||
|
];
|
||||||
|
|
||||||
|
public function testViewCryptographicKeyById(): void
|
||||||
|
{
|
||||||
|
$this->skipOpenApiValidations();
|
||||||
|
|
||||||
|
$this->setAuthToken(AuthKeysFixture::ADMIN_API_KEY);
|
||||||
|
$url = sprintf('%s/%d', self::ENDPOINT, CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_ID);
|
||||||
|
$this->get($url);
|
||||||
|
|
||||||
|
$this->assertResponseOk();
|
||||||
|
$this->assertResponseContains(sprintf('"id": %d', CryptographicKeysFixture::CRYPTOGRAPHIC_KEY_REGULAR_USER_ID));
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,6 @@ use Cake\TestSuite\TestCase;
|
||||||
use App\Test\Fixture\AuthKeysFixture;
|
use App\Test\Fixture\AuthKeysFixture;
|
||||||
use App\Test\Fixture\UsersFixture;
|
use App\Test\Fixture\UsersFixture;
|
||||||
use App\Test\Fixture\OrganisationsFixture;
|
use App\Test\Fixture\OrganisationsFixture;
|
||||||
use App\Test\Fixture\RolesFixture;
|
|
||||||
use App\Test\Helper\ApiTestTrait;
|
use App\Test\Helper\ApiTestTrait;
|
||||||
|
|
||||||
class AddUserApiTest extends TestCase
|
class AddUserApiTest extends TestCase
|
||||||
|
|
|
@ -7,7 +7,6 @@ namespace App\Test\TestCase\Api\Users;
|
||||||
use Cake\TestSuite\TestCase;
|
use Cake\TestSuite\TestCase;
|
||||||
use App\Test\Fixture\AuthKeysFixture;
|
use App\Test\Fixture\AuthKeysFixture;
|
||||||
use App\Test\Fixture\UsersFixture;
|
use App\Test\Fixture\UsersFixture;
|
||||||
use App\Test\Fixture\RolesFixture;
|
|
||||||
use App\Test\Helper\ApiTestTrait;
|
use App\Test\Helper\ApiTestTrait;
|
||||||
|
|
||||||
class EditUserApiTest extends TestCase
|
class EditUserApiTest extends TestCase
|
||||||
|
@ -22,7 +21,6 @@ class EditUserApiTest extends TestCase
|
||||||
'app.AuthKeys'
|
'app.AuthKeys'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
public function testEditUser(): void
|
public function testEditUser(): void
|
||||||
{
|
{
|
||||||
$this->markTestSkipped("This is not implemented yet.");
|
$this->markTestSkipped("This is not implemented yet.");
|
||||||
|
|
Loading…
Reference in New Issue