setHeaders() public method

Set the headers to sign.
public setHeaders ( Swift_Mime_HeaderSet $headers ) : Swift_Signers_DKIMSigner
$headers Swift_Mime_HeaderSet
return Swift_Signers_DKIMSigner
示例#1
0
 public function setHeaders(Swift_Mime_HeaderSet $headers)
 {
     if (!$this->_peclLoaded) {
         return parent::setHeaders($headers);
     }
     //dkim_sign(privateKey, selector, domain[, header_canon[, body_canon[, sign_alg[, body_length]]]])
     $bodyLen = $this->_bodyLen();
     if (is_bool($bodyLen)) {
         $bodyLen = -1;
     }
     $hash = $this->_hashAlgorithm == 'rsa-sha1' ? DKIM_SIGN_RSASHA1 : DKIM_SIGN_RSASHA256;
     $bodyCanon = $this->_bodyCanon == 'simple' ? DKIM_CANON_SIMPLE : DKIM_CANON_RELAXED;
     $headerCanon = $this->_headerCanon == 'simple' ? DKIM_CANON_SIMPLE : DKIM_CANON_RELAXED;
     $this->_dkimHandler = dkim_sign($this->_privateKey, $this->_selector, $this->_domainName, $headerCanon, $bodyCanon, $hash, $bodyLen);
     $listHeaders = $headers->listAll();
     foreach ($listHeaders as $hName) {
         // Check if we need to ignore Header
         if (!isset($this->_ignoredHeaders[strtolower($hName)])) {
             $tmp = $headers->getAll($hName);
             if ($headers->has($hName)) {
                 foreach ($tmp as $header) {
                     if ($header->getFieldBody() != '') {
                         dkim_header($this->_dkimHandler, $header->toString());
                         $this->_signedHeaders[] = $header->getFieldName();
                     }
                 }
             }
         }
     }
     return $this;
 }
示例#2
0
 public function testSigningSimpleRelaxed256()
 {
     $headerSet = $this->_createHeaderSet();
     $messageContent = "Hello World";
     $signer = new Swift_Signers_DKIMSigner(file_get_contents(dirname(dirname(dirname(__DIR__))) . '/_samples/dkim/dkim.test.priv'), 'dummy.nxdomain.be', 'dummySelector');
     $signer->setHashAlgorithm('rsa-sha256');
     $signer->setSignatureTimestamp('1299879181');
     $signer->setBodyCanon('relaxed');
     $altered = $signer->getAlteredHeaders();
     $this->assertEquals(array('DKIM-Signature'), $altered);
     $signer->reset();
     $signer->setHeaders($headerSet);
     $this->assertFalse($headerSet->has('DKIM-Signature'));
     $signer->startBody();
     $signer->write($messageContent);
     $signer->endBody();
     $signer->addSignature($headerSet);
     $this->assertTrue($headerSet->has('DKIM-Signature'));
     $dkim = $headerSet->getAll('DKIM-Signature');
     $sig = reset($dkim);
     $this->assertEquals($sig->getValue(), 'v=1; a=rsa-sha256; bh=f+W+hu8dIhf2VAni89o8lF6WKTXi7nViA4RrMdpD5/U=; d=dummy.nxdomain.be; h=; i=@dummy.nxdomain.be; s=dummySelector; c=simple/relaxed; t=1299879181; b=M5eomH/zamyzix9kOes+6YLzQZxuJdBP4x3nP9zF2N26eMLG2/cBKbnNyqiOTDhJdYfWPbLIa 1CWnjST0j5p4CpeOkGYuiE+M4TWEZwhRmRWootlPO3Ii6XpbBJKFk1o9zviS7OmXblUUE4aqb yRSIMDhtLdCK5GlaCneFLN7RQ=');
 }