function post_create(\App\Http\Requests\CreateRequest $request) { $this->loginOnly(); $size = $request->size; if (!in_array($size, [32, 64, 96, 128, 192, 256, 320, 512, 768, 1024, 1536, 2048, 4096])) { return $this->get_create()->withErrors(['Такой размер не доступен!']); } $rsa = new RSA((int) $size); $rsa->create(['created_at' => date('Y-m-d H:i:s'), 'best_before' => $best_before = (new \DateTime())->add(new \DateInterval('P3Y'))->format('Y-m-d H:i:s'), 'created_by' => 'Центр сертификации CryptDC', 'owner' => ['firstname' => Auth::user()->firstname, 'lastname' => Auth::user()->lastname, 'country' => Auth::user()->country, 'city' => Auth::user()->city, 'email' => Auth::user()->email]]); $cerf = new Certificate(); $cerf->user_id = Auth::user()->id; $cerf->best_before = $best_before; $cerf->name = $request->name; $cerf->description = $request->description; $cerf->public = $request->public; $cerf->size = $request->size; $cerf->rsa = $rsa->serialize(); $cerf->rsa_public = $rsa->getPublic(); $cerf->rsa_private = $rsa->getPrivate(); $cerf->save(); return redirect('/certificates'); }