Esempio n. 1
0
 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');
 }