From 23c3cf530e323500eeb649e391cb95d06ffade14 Mon Sep 17 00:00:00 2001 From: Corne Oppelaar Date: Fri, 3 Jun 2016 20:13:46 +0200 Subject: [PATCH] [wip] --- bin/create-invite.php | 15 +++++++++------ src/Service/Server.php | 23 +++++++++++++++++------ src/Service/User.php | 19 ++++++++++++++++--- 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/bin/create-invite.php b/bin/create-invite.php index b93811b..eaa503a 100644 --- a/bin/create-invite.php +++ b/bin/create-invite.php @@ -1,12 +1,15 @@ #!/usr/bin/env php startTimer(["total"]); +$core->boot($basedir); +echo $core->get('user')->createInvite(); +$core->endTimer(["total"]); -$config = new Config(); -$controller = new Controller($config); - -echo $controller->createInvite() . "\n"; diff --git a/src/Service/Server.php b/src/Service/Server.php index b54c093..e75c62a 100644 --- a/src/Service/Server.php +++ b/src/Service/Server.php @@ -46,21 +46,32 @@ class Server extends Main /** @var CA $ca */ $ca = $this->get('ca'); - - $data['signature'] = $ca->signWithCA($server->getFingerprint()); + + $data['signature'] = bin2hex($ca->signWithCA($server->getFingerprint())); $json = json_encode($data); + $password = bin2hex(openssl_random_pseudo_bytes(32)); $pubKey = openssl_get_publickey($server->getPublicKey()); - - $success = openssl_public_encrypt($json, $crypted, $pubKey, OPENSSL_NO_PADDING); + $success = openssl_public_encrypt($password, $crypted, $pubKey, OPENSSL_PKCS1_PADDING); if (!$success) { throw new \Exception('Encrypting data failed: ' . openssl_error_string() . openssl_error_string()); } + $this->get('logger')->addDebug('Password: ' . $password); + + $body = [ + bin2hex($crypted), + bin2hex(openssl_encrypt($server->getCertificate(), 'aes-256-cbc', $password, 'help')) + ]; + + $this->get('logger')->addDebug('Help: ' . var_export([$json, $body], true)); + + return $client->post('http://' . $server->getExternalIp() . ':' . static::MANAGEMENT_PORT . $path, [ - 'body' => $crypted + 'json' => $body ]); + } -} \ No newline at end of file +} diff --git a/src/Service/User.php b/src/Service/User.php index e523c61..0968739 100644 --- a/src/Service/User.php +++ b/src/Service/User.php @@ -4,6 +4,7 @@ namespace Eater\Glim\Service; use Eater\Glim\Model\Base\UserQuery; use Eater\Glim\Model\InviteQuery; +use Eater\Glim\Model\Invite; use Eater\Glim\Model\User as UserModel; class User extends Main @@ -44,7 +45,7 @@ class User extends Main public function exists($username) { $amount = UserQuery::create()->findByUsername($username)->count(); - + return $amount > 0; } @@ -55,7 +56,19 @@ class User extends Main if ($user === null || !password_verify($password, $user->getPassword())) { return null; } - + return $user; } -} \ No newline at end of file + + /** + * @return string + */ + public function createInvite() + { + $invite = new Invite(); + $invite->setInvite(bin2hex(openssl_random_pseudo_bytes(20))); + $invite->save(); + + return $invite->getInvite(); + } +}