/** * @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; }
/** * 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; }