예제 #1
0
파일: TBSCertificate.php 프로젝트: sop/x509
 /**
  * Create signed certificate.
  *
  * @param Crypto $crypto Crypto engine
  * @param SignatureAlgorithmIdentifier $algo Algorithm used for signing
  * @param PrivateKeyInfo $privkey_info Private key used for signing
  * @return Certificate
  */
 public function sign(Crypto $crypto, SignatureAlgorithmIdentifier $algo, PrivateKeyInfo $privkey_info)
 {
     $tbsCert = clone $this;
     if (!isset($tbsCert->_version)) {
         $tbsCert->_version = $tbsCert->_determineVersion();
     }
     if (!isset($tbsCert->_serialNumber)) {
         $tbsCert->_serialNumber = 0;
     }
     $tbsCert->_signature = $algo;
     $data = $tbsCert->toASN1()->toDER();
     $signature = $crypto->sign($data, $privkey_info, $algo);
     return new Certificate($tbsCert, $algo, $signature);
 }
예제 #2
0
 /**
  * Create signed attribute certificate.
  *
  * @param Crypto $crypto
  * @param SignatureAlgorithmIdentifier $algo Signature algorithm
  * @param PrivateKeyInfo $privkey_info Private key
  * @return AttributeCertificate
  */
 public function sign(Crypto $crypto, SignatureAlgorithmIdentifier $algo, PrivateKeyInfo $privkey_info)
 {
     $aci = clone $this;
     if (!isset($aci->_serialNumber)) {
         $aci->_serialNumber = 0;
     }
     $aci->_signature = $algo;
     $data = $aci->toASN1()->toDER();
     $signature = $crypto->sign($data, $privkey_info, $algo);
     return new AttributeCertificate($aci, $algo, $signature);
 }
예제 #3
0
 /**
  * Create signed CertificationRequest.
  *
  * @param Crypto $crypto Crypto engine
  * @param SignatureAlgorithmIdentifier $algo Algorithm used for signing
  * @param PrivateKeyInfo $privkey_info Private key used for signing
  * @return CertificationRequest
  */
 public function sign(Crypto $crypto, SignatureAlgorithmIdentifier $algo, PrivateKeyInfo $privkey_info)
 {
     $data = $this->toASN1()->toDER();
     $signature = $crypto->sign($data, $privkey_info, $algo);
     return new CertificationRequest($this, $algo, $signature);
 }