document->remove(); } public function getSignature(DigitalSignatureRequest $request, string $token): DigitalSignatureResponse { if ($_ENV['API_TOKEN'] !== $request->apiToken) { throw new AccessDeniedHttpException('Доступ запрещен'); } $this->api->apiParams = $this->apiParams; try { $this->document = $this->api->download($request->url, $token); exec(sprintf('cp %s %s.pdf', $this->document->tempFileName, $this->document->tempFileName)); exec(sprintf('cryptcp -sign -detached -der %s.pdf', $this->document->tempFileName)); $response = base64_encode(file_get_contents($this->document->tempFileName . '.pdf.sgn')); return new DigitalSignatureResponse( hash: $response, content: file_get_contents(sprintf('%s.pdf', $this->document->tempFileName)) ); } catch (Exception $e) { throw new RuntimeException($e->getMessage()); } } }