/**
  * @param PaymentRequestBuf $request
  * @return PaymentRequestBuf
  * @throws \Exception
  */
 public function apply(PaymentRequestBuf $request)
 {
     $request->setPkiType($this->type);
     $request->setSignature('');
     if ($this->type !== 'none') {
         $request->setPkiData($this->certificates->serialize());
         $data = $request->serialize();
         $signature = '';
         $result = openssl_sign($data, $signature, $this->privateKey, $this->algoConst);
         if ($signature === false || $result === false) {
             throw new \Exception('Error during signing: Unable to create signature');
         }
         $request->setSignature($signature);
     }
     return $request;
 }
Exemplo n.º 2
0
 /**
  * Applies the configured signature algorithm, adding values to
  * the protobuf: 'pkiType', 'signature', 'pkiData'
  *
  * @param PaymentRequestBuf $request
  * @return PaymentRequestBuf
  * @throws \Exception
  */
 public function apply(PaymentRequestBuf $request)
 {
     $request->setPkiType($this->type);
     $request->setSignature('');
     if ($this->type !== 'none') {
         // PkiData must be captured in signature, and signature must be empty!
         $request->setPkiData($this->certificates->serialize());
         $signature = $this->signData($request->serialize());
         $request->setSignature($signature);
     }
     return $request;
 }