Просмотр исходного кода

[#222] Remove InfoCard component

- Service no longer exists
Matthew Weier O'Phinney 12 лет назад
Родитель
Сommit
b2ebc7ea51
59 измененных файлов с 0 добавлено и 4862 удалено
  1. 0 497
      library/Zend/InfoCard.php
  2. 0 79
      library/Zend/InfoCard/Adapter/Default.php
  3. 0 37
      library/Zend/InfoCard/Adapter/Exception.php
  4. 0 64
      library/Zend/InfoCard/Adapter/Interface.php
  5. 0 99
      library/Zend/InfoCard/Cipher.php
  6. 0 38
      library/Zend/InfoCard/Cipher/Exception.php
  7. 0 88
      library/Zend/InfoCard/Cipher/Pki/Adapter/Abstract.php
  8. 0 120
      library/Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php
  9. 0 33
      library/Zend/InfoCard/Cipher/Pki/Interface.php
  10. 0 50
      library/Zend/InfoCard/Cipher/Pki/Rsa/Interface.php
  11. 0 38
      library/Zend/InfoCard/Cipher/Symmetric/Adapter/Abstract.php
  12. 0 40
      library/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes128cbc.php
  13. 0 111
      library/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php
  14. 0 38
      library/Zend/InfoCard/Cipher/Symmetric/Aes128cbc/Interface.php
  15. 0 33
      library/Zend/InfoCard/Cipher/Symmetric/Aes256cbc/Interface.php
  16. 0 32
      library/Zend/InfoCard/Cipher/Symmetric/Interface.php
  17. 0 307
      library/Zend/InfoCard/Claims.php
  18. 0 43
      library/Zend/InfoCard/Exception.php
  19. 0 88
      library/Zend/InfoCard/Xml/Assertion.php
  20. 0 69
      library/Zend/InfoCard/Xml/Assertion/Interface.php
  21. 0 284
      library/Zend/InfoCard/Xml/Assertion/Saml.php
  22. 0 107
      library/Zend/InfoCard/Xml/Element.php
  23. 0 44
      library/Zend/InfoCard/Xml/Element/Interface.php
  24. 0 75
      library/Zend/InfoCard/Xml/EncryptedData.php
  25. 0 92
      library/Zend/InfoCard/Xml/EncryptedData/Abstract.php
  26. 0 64
      library/Zend/InfoCard/Xml/EncryptedData/XmlEnc.php
  27. 0 174
      library/Zend/InfoCard/Xml/EncryptedKey.php
  28. 0 37
      library/Zend/InfoCard/Xml/Exception.php
  29. 0 90
      library/Zend/InfoCard/Xml/KeyInfo.php
  30. 0 37
      library/Zend/InfoCard/Xml/KeyInfo/Abstract.php
  31. 0 64
      library/Zend/InfoCard/Xml/KeyInfo/Default.php
  32. 0 38
      library/Zend/InfoCard/Xml/KeyInfo/Interface.php
  33. 0 76
      library/Zend/InfoCard/Xml/KeyInfo/XmlDSig.php
  34. 0 327
      library/Zend/InfoCard/Xml/Security.php
  35. 0 37
      library/Zend/InfoCard/Xml/Security/Exception.php
  36. 0 116
      library/Zend/InfoCard/Xml/Security/Transform.php
  37. 0 60
      library/Zend/InfoCard/Xml/Security/Transform/EnvelopedSignature.php
  38. 0 37
      library/Zend/InfoCard/Xml/Security/Transform/Exception.php
  39. 0 43
      library/Zend/InfoCard/Xml/Security/Transform/Interface.php
  40. 0 59
      library/Zend/InfoCard/Xml/Security/Transform/XmlExcC14N.php
  41. 0 173
      library/Zend/InfoCard/Xml/SecurityTokenReference.php
  42. 0 2
      tests/Zend/AllTests.php
  43. 0 64
      tests/Zend/InfoCard/AllTests.php
  44. 0 110
      tests/Zend/InfoCard/AssertionTest.php
  45. 0 116
      tests/Zend/InfoCard/CipherTest.php
  46. 0 324
      tests/Zend/InfoCard/ProcessTest.php
  47. 0 96
      tests/Zend/InfoCard/XmlParsingTest.php
  48. 0 15
      tests/Zend/InfoCard/_files/encryptedkey.xml
  49. 0 15
      tests/Zend/InfoCard/_files/encryptedkey_bad_block.xml
  50. 0 15
      tests/Zend/InfoCard/_files/encryptedkey_missing_enc_algo.xml
  51. 0 12
      tests/Zend/InfoCard/_files/encryptedkey_missing_encryptionmethod.xml
  52. 0 22
      tests/Zend/InfoCard/_files/encryptedtoken.xml
  53. 0 22
      tests/Zend/InfoCard/_files/encryptedtoken2.xml
  54. 0 22
      tests/Zend/InfoCard/_files/encryptedtoken_bad_type.xml
  55. 0 5
      tests/Zend/InfoCard/_files/security_token_bad_keyref.xml
  56. 0 0
      tests/Zend/InfoCard/_files/signedToken.xml
  57. 0 0
      tests/Zend/InfoCard/_files/signedToken_bad_type.xml
  58. 0 51
      tests/Zend/InfoCard/_files/ssl_private.cert
  59. 0 33
      tests/Zend/InfoCard/_files/ssl_pub.cert

+ 0 - 497
library/Zend/InfoCard.php

@@ -1,497 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_EncryptedData
- */
-require_once 'Zend/InfoCard/Xml/EncryptedData.php';
-
-/**
- * Zend_InfoCard_Xml_Assertion
- */
-require_once 'Zend/InfoCard/Xml/Assertion.php';
-
-/**
- * Zend_InfoCard_Cipher
- */
-require_once 'Zend/InfoCard/Cipher.php';
-
-/**
- * Zend_InfoCard_Xml_Security
- */
-require_once 'Zend/InfoCard/Xml/Security.php';
-
-/**
- * Zend_InfoCard_Adapter_Interface
- */
-require_once 'Zend/InfoCard/Adapter/Interface.php';
-
-/**
- * Zend_InfoCard_Claims
- */
-require_once 'Zend/InfoCard/Claims.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard
-{
-    /**
-     * URI for XML Digital Signature SHA1 Digests
-     */
-    const DIGEST_SHA1        = 'http://www.w3.org/2000/09/xmldsig#sha1';
-
-    /**
-     * An array of certificate pair files and optional passwords for them to search
-     * when trying to determine which certificate was used to encrypt the transient key
-     *
-     * @var Array
-     */
-    protected $_keyPairs;
-
-    /**
-     * The instance to use to decrypt public-key encrypted data
-     *
-     * @var Zend_InfoCard_Cipher_Pki_Interface
-     */
-    protected $_pkiCipherObj;
-
-    /**
-     * The instance to use to decrypt symmetric encrypted data
-     *
-     * @var Zend_InfoCard_Cipher_Symmetric_Interface
-     */
-    protected $_symCipherObj;
-
-    /**
-     * The InfoCard Adapter to use for callbacks into the application using the component
-     * such as when storing assertions, etc.
-     *
-     * @var Zend_InfoCard_Adapter_Interface
-     */
-    protected $_adapter;
-
-
-    /**
-     * InfoCard Constructor
-     *
-     * @throws Zend_InfoCard_Exception
-     */
-    public function __construct()
-    {
-        $this->_keyPairs = array();
-
-        if(!extension_loaded('mcrypt')) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Use of the Zend_InfoCard component requires the mcrypt extension to be enabled in PHP");
-        }
-
-        if(!extension_loaded('openssl')) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Use of the Zend_InfoCard component requires the openssl extension to be enabled in PHP");
-        }
-    }
-
-    /**
-     * Sets the adapter uesd for callbacks into the application using the component, used
-     * when doing things such as storing / retrieving assertions, etc.
-     *
-     * @param Zend_InfoCard_Adapter_Interface $a The Adapter instance
-     * @return Zend_InfoCard The instnace
-     */
-    public function setAdapter(Zend_InfoCard_Adapter_Interface $a)
-    {
-        $this->_adapter = $a;
-        return $this;
-    }
-
-    /**
-     * Retrieves the adapter used for callbacks into the application using the component.
-     * If no adapter was set then an instance of Zend_InfoCard_Adapter_Default is used
-     *
-     * @return Zend_InfoCard_Adapter_Interface The Adapter instance
-     */
-    public function getAdapter()
-    {
-        if($this->_adapter === null) {
-            require_once 'Zend/InfoCard/Adapter/Default.php';
-            $this->setAdapter(new Zend_InfoCard_Adapter_Default());
-        }
-
-        return $this->_adapter;
-    }
-
-    /**
-     * Gets the Public Key Cipher object used in this instance
-     *
-     * @return Zend_InfoCard_Cipher_Pki_Interface
-     */
-    public function getPkiCipherObject()
-    {
-        return $this->_pkiCipherObj;
-    }
-
-    /**
-     * Sets the Public Key Cipher Object used in this instance
-     *
-     * @param Zend_InfoCard_Cipher_Pki_Interface $cipherObj
-     * @return Zend_InfoCard
-     */
-    public function setPkiCipherObject(Zend_InfoCard_Cipher_Pki_Interface $cipherObj)
-    {
-        $this->_pkiCipherObj = $cipherObj;
-        return $this;
-    }
-
-    /**
-     * Get the Symmetric Cipher Object used in this instance
-     *
-     * @return Zend_InfoCard_Cipher_Symmetric_Interface
-     */
-    public function getSymCipherObject()
-    {
-        return $this->_symCipherObj;
-    }
-
-    /**
-     * Sets the Symmetric Cipher Object used in this instance
-     *
-     * @param Zend_InfoCard_Cipher_Symmetric_Interface $cipherObj
-     * @return Zend_InfoCard
-     */
-    public function setSymCipherObject($cipherObj)
-    {
-        $this->_symCipherObj = $cipherObj;
-        return $this;
-    }
-
-    /**
-     * Remove a Certificate Pair by Key ID from the search list
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $key_id The Certificate Key ID returned from adding the certificate pair
-     * @return Zend_InfoCard
-     */
-    public function removeCertificatePair($key_id)
-    {
-
-        if(!key_exists($key_id, $this->_keyPairs)) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Attempted to remove unknown key id: $key_id");
-        }
-
-        unset($this->_keyPairs[$key_id]);
-        return $this;
-    }
-
-    /**
-     * Add a Certificate Pair to the list of certificates searched by the component
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $private_key_file The path to the private key file for the pair
-     * @param string $public_key_file The path to the certificate / public key for the pair
-     * @param string $type (optional) The URI for the type of key pair this is (default RSA with OAEP padding)
-     * @param string $password (optional) The password for the private key file if necessary
-     * @return string A key ID representing this key pair in the component
-     */
-    public function addCertificatePair($private_key_file, $public_key_file, $type = Zend_InfoCard_Cipher::ENC_RSA_OAEP_MGF1P, $password = null)
-    {
-        if(!file_exists($private_key_file) ||
-           !file_exists($public_key_file)) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Could not locate the public and private certificate pair files: $private_key_file, $public_key_file");
-        }
-
-        if(!is_readable($private_key_file) ||
-           !is_readable($public_key_file)) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Could not read the public and private certificate pair files (check permissions): $private_key_file, $public_key_file");
-        }
-
-        $key_id = md5($private_key_file.$public_key_file);
-
-        if(key_exists($key_id, $this->_keyPairs)) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Attempted to add previously existing certificate pair: $private_key_file, $public_key_file");
-        }
-
-        switch($type) {
-            case Zend_InfoCard_Cipher::ENC_RSA:
-            case Zend_InfoCard_Cipher::ENC_RSA_OAEP_MGF1P:
-                $this->_keyPairs[$key_id] = array('private' => $private_key_file,
-                                'public'      => $public_key_file,
-                                'type_uri'    => $type);
-
-                if($password !== null) {
-                    $this->_keyPairs[$key_id]['password'] = $password;
-                } else {
-                    $this->_keyPairs[$key_id]['password'] = null;
-                }
-
-                return $key_id;
-                break;
-            default:
-                require_once 'Zend/InfoCard/Exception.php';
-                throw new Zend_InfoCard_Exception("Invalid Certificate Pair Type specified: $type");
-        }
-    }
-
-    /**
-     * Return a Certificate Pair from a key ID
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $key_id The Key ID of the certificate pair in the component
-     * @return array An array containing the path to the private/public key files,
-     *               the type URI and the password if provided
-     */
-    public function getCertificatePair($key_id)
-    {
-        if(key_exists($key_id, $this->_keyPairs)) {
-            return $this->_keyPairs[$key_id];
-        }
-
-        require_once 'Zend/InfoCard/Exception.php';
-        throw new Zend_InfoCard_Exception("Invalid Certificate Pair ID provided: $key_id");
-    }
-
-    /**
-     * Retrieve the digest of a given public key / certificate using the provided digest
-     * method
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $key_id The certificate key id in the component
-     * @param string $digestMethod The URI of the digest method to use (default SHA1)
-     * @return string The digest value in binary format
-     */
-    protected function _getPublicKeyDigest($key_id, $digestMethod = self::DIGEST_SHA1)
-    {
-        $certificatePair = $this->getCertificatePair($key_id);
-
-        $temp = file($certificatePair['public']);
-        unset($temp[count($temp)-1]);
-        unset($temp[0]);
-        $certificateData = base64_decode(implode("\n", $temp));
-
-        switch($digestMethod) {
-            case self::DIGEST_SHA1:
-                $digest_retval = sha1($certificateData, true);
-                break;
-            default:
-                require_once 'Zend/InfoCard/Exception.php';
-                throw new Zend_InfoCard_Exception("Invalid Digest Type Provided: $digestMethod");
-        }
-
-        return $digest_retval;
-    }
-
-    /**
-     * Find a certificate pair based on a digest of its public key / certificate file
-     *
-     * @param string $digest The digest value of the public key wanted in binary form
-     * @param string $digestMethod The URI of the digest method used to calculate the digest
-     * @return mixed The Key ID of the matching certificate pair or false if not found
-     */
-    protected function _findCertifiatePairByDigest($digest, $digestMethod = self::DIGEST_SHA1)
-    {
-
-        foreach($this->_keyPairs as $key_id => $certificate_data) {
-
-            $cert_digest = $this->_getPublicKeyDigest($key_id, $digestMethod);
-
-            if($cert_digest == $digest) {
-                return $key_id;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Extracts the Signed Token from an EncryptedData block
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $strXmlToken The EncryptedData XML block
-     * @return string The XML of the Signed Token inside of the EncryptedData block
-     */
-    protected function _extractSignedToken($strXmlToken)
-    {
-        $encryptedData = Zend_InfoCard_Xml_EncryptedData::getInstance($strXmlToken);
-
-        // Determine the Encryption Method used to encrypt the token
-
-        switch($encryptedData->getEncryptionMethod()) {
-            case Zend_InfoCard_Cipher::ENC_AES128CBC:
-            case Zend_InfoCard_Cipher::ENC_AES256CBC:
-                break;
-            default:
-                require_once 'Zend/InfoCard/Exception.php';
-                throw new Zend_InfoCard_Exception("Unknown Encryption Method used in the secure token");
-        }
-
-        // Figure out the Key we are using to decrypt the token
-
-        $keyinfo = $encryptedData->getKeyInfo();
-
-        if(!($keyinfo instanceof Zend_InfoCard_Xml_KeyInfo_XmlDSig)) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Expected a XML digital signature KeyInfo, but was not found");
-        }
-
-
-        $encryptedKey = $keyinfo->getEncryptedKey();
-
-        switch($encryptedKey->getEncryptionMethod()) {
-            case Zend_InfoCard_Cipher::ENC_RSA:
-            case Zend_InfoCard_Cipher::ENC_RSA_OAEP_MGF1P:
-                break;
-            default:
-                require_once 'Zend/InfoCard/Exception.php';
-                throw new Zend_InfoCard_Exception("Unknown Key Encryption Method used in secure token");
-        }
-
-        $securityTokenRef = $encryptedKey->getKeyInfo()->getSecurityTokenReference();
-
-        $key_id = $this->_findCertifiatePairByDigest($securityTokenRef->getKeyReference());
-
-        if(!$key_id) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Unable to find key pair used to encrypt symmetric InfoCard Key");
-        }
-
-        $certificate_pair = $this->getCertificatePair($key_id);
-
-        // Santity Check
-
-        if($certificate_pair['type_uri'] != $encryptedKey->getEncryptionMethod()) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Certificate Pair which matches digest is not of same algorithm type as document, check addCertificate()");
-        }
-
-        $PKcipher = Zend_InfoCard_Cipher::getInstanceByURI($encryptedKey->getEncryptionMethod());
-
-        $base64DecodeSupportsStrictParam = version_compare(PHP_VERSION, '5.2.0', '>=');
-
-        if ($base64DecodeSupportsStrictParam) {
-            $keyCipherValueBase64Decoded = base64_decode($encryptedKey->getCipherValue(), true);
-        } else {
-            $keyCipherValueBase64Decoded = base64_decode($encryptedKey->getCipherValue());
-        }
-
-        $symmetricKey = $PKcipher->decrypt(
-            $keyCipherValueBase64Decoded,
-            file_get_contents($certificate_pair['private']),
-            $certificate_pair['password']
-            );
-
-        $symCipher = Zend_InfoCard_Cipher::getInstanceByURI($encryptedData->getEncryptionMethod());
-
-        if ($base64DecodeSupportsStrictParam) {
-            $dataCipherValueBase64Decoded = base64_decode($encryptedData->getCipherValue(), true);
-        } else {
-            $dataCipherValueBase64Decoded = base64_decode($encryptedData->getCipherValue());
-        }
-
-        $signedToken = $symCipher->decrypt($dataCipherValueBase64Decoded, $symmetricKey);
-
-        return $signedToken;
-    }
-
-    /**
-     * Process an input Infomation Card EncryptedData block sent from the client,
-     * validate it, and return the claims contained within it on success or an error message on error
-     *
-     * @param string $strXmlToken The XML token sent to the server from the client
-     * @return Zend_Infocard_Claims The Claims object containing the claims, or any errors which occurred
-     */
-    public function process($strXmlToken)
-    {
-
-        $retval = new Zend_InfoCard_Claims();
-
-        require_once 'Zend/InfoCard/Exception.php';
-        try {
-            $signedAssertionsXml = $this->_extractSignedToken($strXmlToken);
-        } catch(Zend_InfoCard_Exception $e) {
-            $retval->setError('Failed to extract assertion document');
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_PROCESSING_FAILURE);
-            return $retval;
-        }
-
-        try {
-            $assertions = Zend_InfoCard_Xml_Assertion::getInstance($signedAssertionsXml);
-        } catch(Zend_InfoCard_Exception $e) {
-            $retval->setError('Failure processing assertion document');
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_PROCESSING_FAILURE);
-            return $retval;
-        }
-
-        if(!($assertions instanceof Zend_InfoCard_Xml_Assertion_Interface)) {
-            throw new Zend_InfoCard_Exception("Invalid Assertion Object returned");
-        }
-
-        if(!($reference_id = Zend_InfoCard_Xml_Security::validateXMLSignature($assertions->asXML()))) {
-            $retval->setError("Failure Validating the Signature of the assertion document");
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_VALIDATION_FAILURE);
-            return $retval;
-        }
-
-        // The reference id should be locally scoped as far as I know
-        if($reference_id[0] == '#') {
-            $reference_id = substr($reference_id, 1);
-        } else {
-            $retval->setError("Reference of document signature does not reference the local document");
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_VALIDATION_FAILURE);
-            return $retval;
-        }
-
-        // Make sure the signature is in reference to the same document as the assertions
-        if($reference_id != $assertions->getAssertionID()) {
-            $retval->setError("Reference of document signature does not reference the local document");
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_VALIDATION_FAILURE);
-        }
-
-        // Validate we haven't seen this before and the conditions are acceptable
-        $conditions = $this->getAdapter()->retrieveAssertion($assertions->getAssertionURI(), $assertions->getAssertionID());
-
-        if($conditions === false) {
-            $conditions = $assertions->getConditions();
-        }
-
-
-        if(is_array($condition_error = $assertions->validateConditions($conditions))) {
-            $retval->setError("Conditions of assertion document are not met: {$condition_error[1]} ({$condition_error[0]})");
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_VALIDATION_FAILURE);
-        }
-
-        $attributes = $assertions->getAttributes();
-
-        $retval->setClaims($attributes);
-
-        if($retval->getCode() == 0) {
-            $retval->setCode(Zend_InfoCard_Claims::RESULT_SUCCESS);
-        }
-
-        return $retval;
-    }
-}

+ 0 - 79
library/Zend/InfoCard/Adapter/Default.php

@@ -1,79 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Adapter_Interface
- */
-require_once 'Zend/InfoCard/Adapter/Interface.php';
-
-/**
- * The default InfoCard component Adapter which serves as a pass-thru placeholder
- * for developers. Initially developed to provide a callback mechanism to store and retrieve
- * assertions as part of the validation process it can be used anytime callback facilities
- * are necessary
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Adapter_Default implements Zend_InfoCard_Adapter_Interface
-{
-    /**
-     * Store the assertion (pass-thru does nothing)
-     *
-     * @param string $assertionURI The assertion type URI
-     * @param string $assertionID The specific assertion ID
-     * @param array $conditions An array of claims to store associated with the assertion
-     * @return bool Always returns true (would return false on store failure)
-     */
-    public function storeAssertion($assertionURI, $assertionID, $conditions)
-    {
-        return true;
-    }
-
-    /**
-     * Retrieve an assertion (pass-thru does nothing)
-     *
-     * @param string $assertionURI The assertion type URI
-     * @param string $assertionID The assertion ID to retrieve
-     * @return mixed False if the assertion ID was not found for that URI, or an array of
-     *               conditions associated with that assertion if found (always returns false)
-     */
-    public function retrieveAssertion($assertionURI, $assertionID)
-    {
-        return false;
-    }
-
-    /**
-     * Remove an assertion (pass-thru does nothing)
-     *
-     * @param string $assertionURI The assertion type URI
-     * @param string $assertionID The assertion ID to remove
-     * @return bool Always returns true (false on removal failure)
-     */
-    public function removeAssertion($assertionURI, $assertionID)
-    {
-        return null;
-    }
-}

+ 0 - 37
library/Zend/InfoCard/Adapter/Exception.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * @see Zend_InfoCard_Exception
- */
-require_once 'Zend/InfoCard/Exception.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Adapter_Exception extends Zend_InfoCard_Exception
-{
-}

+ 0 - 64
library/Zend/InfoCard/Adapter/Interface.php

@@ -1,64 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * The interface required by all Zend_InfoCard Adapter classes to implement. It represents
- * a series of callback methods used by the component during processing of an information card
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Adapter
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Adapter_Interface
-{
-    /**
-     * Store the assertion's claims in persistent storage
-     *
-     * @param string $assertionURI The assertion type URI
-     * @param string $assertionID The specific assertion ID
-     * @param array $conditions An array of claims to store associated with the assertion
-     * @return bool True on success, false on failure
-     */
-    public function storeAssertion($assertionURI, $assertionID, $conditions);
-
-    /**
-     * Retrieve the claims of a given assertion from persistent storage
-     *
-     * @param string $assertionURI The assertion type URI
-     * @param string $assertionID The assertion ID to retrieve
-     * @return mixed False if the assertion ID was not found for that URI, or an array of
-     *               conditions associated with that assertion if found in the same format
-     *                  provided
-     */
-    public function retrieveAssertion($assertionURI, $assertionID);
-
-    /**
-     * Remove the claims of a given assertion from persistent storage
-     *
-     * @param string $asserionURI The assertion type URI
-     * @param string $assertionID The assertion ID to remove
-     * @return bool True on success, false on failure
-     */
-    public function removeAssertion($asserionURI, $assertionID);
-}

+ 0 - 99
library/Zend/InfoCard/Cipher.php

@@ -1,99 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Provides an abstraction for encryption ciphers used in an Information Card
- * implementation
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Cipher
-{
-    /**
-     * AES 256 Encryption with CBC
-     */
-    const ENC_AES256CBC      = 'http://www.w3.org/2001/04/xmlenc#aes256-cbc';
-
-    /**
-     * AES 128 Encryption with CBC
-     */
-    const ENC_AES128CBC      = 'http://www.w3.org/2001/04/xmlenc#aes128-cbc';
-
-    /**
-     * RSA Public Key Encryption with OAEP Padding
-     */
-    const ENC_RSA_OAEP_MGF1P = 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p';
-
-    /**
-     * RSA Public Key Encryption with no padding
-     */
-    const ENC_RSA            = 'http://www.w3.org/2001/04/xmlenc#rsa-1_5';
-
-    /**
-     * Constructor (disabled)
-     *
-     * @return void
-     * @codeCoverageIgnoreStart
-     */
-    protected function __construct()
-    {
-    }
-    // @codeCoverageIgnoreEnd
-    /**
-     * Returns an instance of a cipher object supported based on the URI provided
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     * @param string $uri The URI of the encryption method wantde
-     * @return mixed an Instance of Zend_InfoCard_Cipher_Symmetric_Interface or Zend_InfoCard_Cipher_Pki_Interface
-     *               depending on URI
-     */
-    static public function getInstanceByURI($uri)
-    {
-        switch($uri) {
-            case self::ENC_AES256CBC:
-                include_once 'Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php';
-                return new Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc();
-
-            case self::ENC_AES128CBC:
-                include_once 'Zend/InfoCard/Cipher/Symmetric/Adapter/Aes128cbc.php';
-                return new Zend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc();
-
-            case self::ENC_RSA_OAEP_MGF1P:
-                include_once 'Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php';
-                return new Zend_InfoCard_Cipher_Pki_Adapter_Rsa(Zend_InfoCard_Cipher_Pki_Adapter_Rsa::OAEP_PADDING);
-                break;
-
-            case self::ENC_RSA:
-                include_once 'Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php';
-                return new Zend_InfoCard_Cipher_Pki_Adapter_Rsa(Zend_InfoCard_Cipher_Pki_Adapter_Rsa::NO_PADDING);
-                break;
-
-            default:
-                require_once 'Zend/InfoCard/Cipher/Exception.php';
-                throw new Zend_InfoCard_Cipher_Exception("Unknown Cipher URI");
-        }
-    }
-}

+ 0 - 38
library/Zend/InfoCard/Cipher/Exception.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Exception
- */
-require_once 'Zend/InfoCard/Exception.php';
-
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Cipher_Exception extends Zend_InfoCard_Exception
-{
-}

+ 0 - 88
library/Zend/InfoCard/Cipher/Pki/Adapter/Abstract.php

@@ -1,88 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Pki_Interface
- */
-require_once 'Zend/InfoCard/Cipher/Pki/Interface.php';
-
-/**
- * An abstract class for public-key ciphers
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-abstract class Zend_InfoCard_Cipher_Pki_Adapter_Abstract implements Zend_InfoCard_Cipher_Pki_Interface
-{
-    /**
-     * OAEP Padding public key encryption
-     */
-    const OAEP_PADDING = 1;
-
-    /**
-     * No padding public key encryption
-     */
-    const NO_PADDING = 2;
-
-    /**
-     * The type of padding to use
-     *
-     * @var integer one of the padding constants in this class
-     */
-    protected $_padding;
-
-    /**
-     * Set the padding of the public key encryption
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     * @param integer $padding One of the constnats in this class
-     * @return Zend_InfoCard_Pki_Adapter_Abstract
-     */
-    public function setPadding($padding)
-    {
-        switch($padding) {
-            case self::OAEP_PADDING:
-            case self::NO_PADDING:
-                $this->_padding = $padding;
-                break;
-            default:
-                require_once 'Zend/InfoCard/Cipher/Exception.php';
-                throw new Zend_InfoCard_Cipher_Exception("Invalid Padding Type Provided");
-                break;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Retruns the public-key padding used
-     *
-     * @return integer One of the padding constants in this class
-     */
-    public function getPadding()
-    {
-        return $this->_padding;
-    }
-}

+ 0 - 120
library/Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php

@@ -1,120 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Pki_Adapter_Abstract
- */
-require_once 'Zend/InfoCard/Cipher/Pki/Adapter/Abstract.php';
-
-/**
- * Zend_InfoCard_Cipher_Pki_Rsa_Interface
- */
-require_once 'Zend/InfoCard/Cipher/Pki/Rsa/Interface.php';
-
-/**
- * RSA Public Key Encryption Cipher Object for the InfoCard component. Relies on OpenSSL
- * to implement the RSA algorithm
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Cipher_Pki_Adapter_Rsa
-    extends Zend_InfoCard_Cipher_Pki_Adapter_Abstract
-    implements Zend_InfoCard_Cipher_Pki_Rsa_Interface
-{
-
-    /**
-     * Object Constructor
-     *
-     * @param integer $padding The type of Padding to use
-     */
-    public function __construct($padding = Zend_InfoCard_Cipher_Pki_Adapter_Abstract::NO_PADDING)
-    {
-        // Can't test this..
-        // @codeCoverageIgnoreStart
-        if(!extension_loaded('openssl')) {
-            require_once 'Zend/InfoCard/Cipher/Exception.php';
-            throw new Zend_InfoCard_Cipher_Exception("Use of this PKI RSA Adapter requires the openssl extension loaded");
-        }
-        // @codeCoverageIgnoreEnd
-
-        $this->setPadding($padding);
-    }
-
-    /**
-     * Decrypts RSA encrypted data using the given private key
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     * @param string $encryptedData The encrypted data in binary format
-     * @param string $privateKey The private key in binary format
-     * @param string $password The private key passphrase
-     * @param integer $padding The padding to use during decryption (of not provided object value will be used)
-     * @return string The decrypted data
-     */
-    public function decrypt($encryptedData, $privateKey, $password = null, $padding = null)
-    {
-        $private_key = openssl_pkey_get_private(array($privateKey, $password));
-
-        if(!$private_key) {
-            require_once 'Zend/InfoCard/Cipher/Exception.php';
-            throw new Zend_InfoCard_Cipher_Exception("Failed to load private key");
-        }
-
-        if($padding !== null) {
-            try {
-                $this->setPadding($padding);
-            } catch(Exception $e) {
-                openssl_free_key($private_key);
-                throw $e;
-            }
-        }
-
-        switch($this->getPadding()) {
-            case self::NO_PADDING:
-                $openssl_padding = OPENSSL_NO_PADDING;
-                break;
-            case self::OAEP_PADDING:
-                $openssl_padding = OPENSSL_PKCS1_OAEP_PADDING;
-                break;
-        }
-
-        $result = openssl_private_decrypt($encryptedData, $decryptedData, $private_key, $openssl_padding);
-
-        openssl_free_key($private_key);
-
-        if(!$result) {
-            require_once 'Zend/InfoCard/Cipher/Exception.php';
-            throw new Zend_InfoCard_Cipher_Exception("Unable to Decrypt Value using provided private key");
-        }
-
-        if($this->getPadding() == self::NO_PADDING) {
-            $decryptedData = substr($decryptedData, 2);
-            $start = strpos($decryptedData, 0) + 1;
-            $decryptedData = substr($decryptedData, $start);
-        }
-
-        return $decryptedData;
-    }
-}

+ 0 - 33
library/Zend/InfoCard/Cipher/Pki/Interface.php

@@ -1,33 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Empty Interface represents a Pki cipher object
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Cipher_Pki_Interface
-{
-}

+ 0 - 50
library/Zend/InfoCard/Cipher/Pki/Rsa/Interface.php

@@ -1,50 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_PKI_Adapter_Abstract
- */
-require_once 'Zend/InfoCard/Cipher/Pki/Adapter/Abstract.php';
-
-/**
- * The interface which defines the RSA Public-key encryption object
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Cipher_Pki_Rsa_Interface
-{
-    /**
-     * Decrypts RSA encrypted data using the given private key
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     * @param string $encryptedData The encrypted data in binary format
-     * @param string $privateKey The private key in binary format
-     * @param string $password The private key passphrase
-     * @param integer $padding The padding to use during decryption (of not provided object value will be used)
-     * @return string The decrypted data
-     */
-    public function decrypt($encryptedData, $privateKey, $password = null, $padding = Zend_InfoCard_Cipher_Pki_Adapter_Abstract::NO_PADDING);
-}

+ 0 - 38
library/Zend/InfoCard/Cipher/Symmetric/Adapter/Abstract.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Symmetric_Interface
- */
-require_once 'Zend/InfoCard/Cipher/Symmetric/Interface.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-abstract class Zend_InfoCard_Cipher_Symmetric_Adapter_Abstract
-    implements Zend_InfoCard_Cipher_Symmetric_Interface
-{
-}

+ 0 - 40
library/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes128cbc.php

@@ -1,40 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc
- */
-require_once 'Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php';
-
-/**
- * Implements AES128 with CBC encryption implemented using the mCrypt extension
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc
-    extends Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc
-{
-}

+ 0 - 111
library/Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php

@@ -1,111 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Symmetric_Adapter_Abstract
- */
-require_once 'Zend/InfoCard/Cipher/Symmetric/Adapter/Abstract.php';
-
-/**
- * Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface
- */
-require_once 'Zend/InfoCard/Cipher/Symmetric/Aes256cbc/Interface.php';
-
-/**
- * Implements AES256 with CBC encryption implemented using the mCrypt extension
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc
-    extends Zend_InfoCard_Cipher_Symmetric_Adapter_Abstract
-    implements Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface
-{
-    /**
-     * The MCRYPT Cipher constant for this encryption
-     */
-    const MCRYPT_CIPHER = MCRYPT_RIJNDAEL_128;
-
-    /**
-     * The MCRYPT Mode constant for this encryption
-     */
-    const MCRYPT_MODE   = MCRYPT_MODE_CBC;
-
-    /**
-     * The default length of the IV to use
-     */
-    const IV_LENGTH     = 16;
-
-    /**
-     * The object constructor
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     */
-    public function __construct()
-    {
-        // Can't test for this
-        // @codeCoverageIgnoreStart
-        if(!extension_loaded('mcrypt')) {
-            require_once 'Zend/InfoCard/Cipher/Exception.php';
-            throw new Zend_InfoCard_Cipher_Exception("Use of the AES256CBC Cipher requires the mcrypt extension");
-        }
-        // @codeCoveregIgnoreEnd
-    }
-
-    /**
-     * Decrypts data using the AES Algorithm using the mCrypt extension
-     *
-     * @throws Zend_InfoCard_Cipher_Exception
-     * @param string $encryptedData The encrypted data in binary format
-     * @param string $decryptionKey The decryption key
-     * @param integer $iv_length The IV length to use
-     * @return string the decrypted data with any terminating nulls removed
-     */
-    public function decrypt($encryptedData, $decryptionKey, $iv_length = null)
-    {
-
-        $iv_length = ($iv_length === null) ? self::IV_LENGTH : $iv_length;
-
-        $mcrypt_iv = null;
-
-        if($iv_length > 0) {
-             $mcrypt_iv = substr($encryptedData, 0, $iv_length);
-            $encryptedData = substr($encryptedData, $iv_length);
-        }
-
-        $decrypted = mcrypt_decrypt(self::MCRYPT_CIPHER, $decryptionKey, $encryptedData, self::MCRYPT_MODE, $mcrypt_iv);
-
-        if(!$decrypted) {
-            require_once 'Zend/InfoCard/Cipher/Exception.php';
-            throw new Zend_InfoCard_Cipher_Exception("Failed to decrypt data using AES256CBC Algorithm");
-        }
-
-        $decryptedLength = strlen($decrypted);
-        $paddingLength = substr($decrypted, $decryptedLength -1, 1);
-        $decrypted = substr($decrypted, 0, $decryptedLength - ord($paddingLength));
-
-        return rtrim($decrypted, "\0");
-    }
-}

+ 0 - 38
library/Zend/InfoCard/Cipher/Symmetric/Aes128cbc/Interface.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface
- */
-require_once 'Zend/InfoCard/Cipher/Symmetric/Aes256cbc/Interface.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Cipher_Symmetric_Aes128cbc_Interface
-    extends Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface
-{
-}

+ 0 - 33
library/Zend/InfoCard/Cipher/Symmetric/Aes256cbc/Interface.php

@@ -1,33 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Cipher_Symmetric_Aes256cbc_Interface
-{
-    public function decrypt($encryptedData, $decryptionKey, $iv_length = null);
-}

+ 0 - 32
library/Zend/InfoCard/Cipher/Symmetric/Interface.php

@@ -1,32 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Cipher
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Cipher_Symmetric_Interface
-{
-}

+ 0 - 307
library/Zend/InfoCard/Claims.php

@@ -1,307 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Result value of the InfoCard component, contains any error messages and claims
- * from the processing of an information card.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Claims
-{
-    /**
-     * Successful validation and extraion of claims
-     */
-    const RESULT_SUCCESS = 1;
-
-    /**
-     * Indicates there was an error processing the XML document
-     */
-    const RESULT_PROCESSING_FAILURE = 2;
-
-    /**
-     * Indicates that the signature values within the XML document failed verification
-     */
-    const RESULT_VALIDATION_FAILURE = 3;
-
-    /**
-     * The default namespace to assume in these claims
-     *
-     * @var string
-     */
-    protected $_defaultNamespace  = null;
-
-    /**
-     * A boolean indicating if the claims should be consider "valid" or not based on processing
-     *
-     * @var bool
-     */
-    protected $_isValid = true;
-
-    /**
-     * The error message if any
-     *
-     * @var string
-     */
-    protected $_error = "";
-
-    /**
-     * An array of claims taken from the information card
-     *
-     * @var array
-     */
-    protected $_claims;
-
-    /**
-     * The result code of processing the information card as defined by the constants of this class
-     *
-     * @var integer
-     */
-    protected $_code;
-
-    /**
-     * Override for the safeguard which ensures that you don't use claims which failed validation.
-     * Used in situations when there was a validation error you'd like to ignore
-     *
-     * @return Zend_InfoCard_Claims
-     */
-    public function forceValid()
-    {
-        trigger_error("Forcing Claims to be valid although it is a security risk", E_USER_WARNING);
-        $this->_isValid = true;
-        return $this;
-    }
-
-    /**
-     * Retrieve the PPI (Private Personal Identifier) associated with the information card
-     *
-     * @return string the private personal identifier
-     */
-    public function getCardID()
-    {
-        return $this->getClaim('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier');
-    }
-
-    /**
-     * Retrieves the default namespace used in this information card. If a default namespace was not
-     * set, it figures out which one to consider 'default' by taking the first namespace sorted by use-count
-     * in claims
-     *
-     * @throws Zend_InfoCard_Exception
-     * @return string The default namespace
-     */
-    public function getDefaultNamespace()
-    {
-        if($this->_defaultNamespace === null) {
-            $namespaces = array();
-            $leader = '';
-            foreach($this->_claims as $claim) {
-                if(!isset($namespaces[$claim['namespace']])) {
-                    $namespaces[$claim['namespace']] = 1;
-                } else {
-                    $namespaces[$claim['namespace']]++;
-                }
-
-                if(empty($leader) || ($namespaces[$claim['namespace']] > $leader)) {
-                    $leader = $claim['namespace'];
-                }
-            }
-
-            if(empty($leader)) {
-                require_once 'Zend/InfoCard/Exception.php';
-                throw new Zend_InfoCard_Exception("Failed to determine default namespace");
-            }
-
-            $this->setDefaultNamespace($leader);
-        }
-
-        return $this->_defaultNamespace;
-    }
-
-    /**
-     * Set the default namespace, overriding any existing default
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param string $namespace The default namespace to use
-     * @return Zend_InfoCard_Claims
-     */
-    public function setDefaultNamespace($namespace)
-    {
-
-        foreach($this->_claims as $claim) {
-            if($namespace == $claim['namespace']) {
-                $this->_defaultNamespace = $namespace;
-                return $this;
-            }
-        }
-
-        require_once 'Zend/InfoCard/Exception.php';
-        throw new Zend_InfoCard_Exception("At least one claim must exist in specified namespace to make it the default namespace");
-    }
-
-    /**
-     * Indicates if this claim object contains validated claims or not
-     *
-     * @return bool
-     */
-    public function isValid()
-    {
-        return $this->_isValid;
-    }
-
-    /**
-     * Set the error message contained within the claims object
-     *
-     * @param string $error The error message
-     * @return Zend_InfoCard_Claims
-     */
-    public function setError($error)
-    {
-        $this->_error = $error;
-        $this->_isValid = false;
-        return $this;
-    }
-
-    /**
-     * Retrieve the error message contained within the claims object
-     *
-     * @return string The error message
-     */
-    public function getErrorMsg()
-    {
-        return $this->_error;
-    }
-
-    /**
-     * Set the claims for the claims object. Can only be set once and is done
-     * by the component itself. Internal use only.
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param array $claims
-     * @return Zend_InfoCard_Claims
-     */
-    public function setClaims(Array $claims)
-    {
-        if($this->_claims !== null) {
-            require_once 'Zend/InfoCard/Exception.php';
-            throw new Zend_InfoCard_Exception("Claim objects are read-only");
-        }
-
-        $this->_claims = $claims;
-        return $this;
-    }
-
-    /**
-     * Set the result code of the claims object.
-     *
-     * @throws Zend_InfoCard_Exception
-     * @param int $code The result code
-     * @return Zend_InfoCard_Claims
-     */
-    public function setCode($code)
-    {
-        switch($code) {
-            case self::RESULT_PROCESSING_FAILURE:
-            case self::RESULT_SUCCESS:
-            case self::RESULT_VALIDATION_FAILURE:
-                $this->_code = $code;
-                return $this;
-        }
-
-        require_once 'Zend/InfoCard/Exception.php';
-        throw new Zend_InfoCard_Exception("Attempted to set unknown error code");
-    }
-
-    /**
-     * Gets the result code of the claims object
-     *
-     * @return integer The result code
-     */
-    public function getCode()
-    {
-        return $this->_code;
-    }
-
-    /**
-     * Get a claim by providing its complete claim URI
-     *
-     * @param string $claimURI The complete claim URI to retrieve
-     * @return mixed The claim matching that specific URI or null if not found
-     */
-    public function getClaim($claimURI)
-    {
-        if($this->claimExists($claimURI)) {
-            return $this->_claims[$claimURI]['value'];
-        }
-
-        return null;
-    }
-
-    /**
-     * Indicates if a specific claim URI exists or not within the object
-     *
-     * @param string $claimURI The complete claim URI to check
-     * @return bool true if the claim exists, false if not found
-     */
-    public function claimExists($claimURI)
-    {
-        return isset($this->_claims[$claimURI]);
-    }
-
-    /**
-     * Magic helper function
-     * @throws Zend_InfoCard_Exception
-     */
-    public function __unset($k)
-    {
-        require_once 'Zend/InfoCard/Exception.php';
-        throw new Zend_InfoCard_Exception("Claim objects are read-only");
-    }
-
-    /**
-     * Magic helper function
-     */
-    public function __isset($k)
-    {
-        return $this->claimExists("{$this->getDefaultNamespace()}/$k");
-    }
-
-    /**
-     * Magic helper function
-     */
-    public function __get($k)
-    {
-        return $this->getClaim("{$this->getDefaultNamespace()}/$k");
-    }
-
-    /**
-     * Magic helper function
-     * @throws Zend_InfoCard_Exception
-     */
-    public function __set($k, $v)
-    {
-        require_once 'Zend/InfoCard/Exception.php';
-        throw new Zend_InfoCard_Exception("Claim objects are read-only");
-    }
-}

+ 0 - 43
library/Zend/InfoCard/Exception.php

@@ -1,43 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-if (class_exists("Zend_Exception")) {
-    abstract class Zend_InfoCard_Exception_Abstract extends Zend_Exception
-    {
-    }
-} else {
-    abstract class Zend_InfoCard_Exception_Abstract extends Exception
-    {
-    }
-}
-
-/**
- * Base Exception class for the InfoCard component
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Exception extends Zend_InfoCard_Exception_Abstract
-{
-}

+ 0 - 88
library/Zend/InfoCard/Xml/Assertion.php

@@ -1,88 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Assertion_Interface
- */
-require_once 'Zend/InfoCard/Xml/Assertion/Interface.php';
-
-/**
- * Factory object to retrieve an Assertion object based on the type of XML document provided
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-final class Zend_InfoCard_Xml_Assertion
-{
-    /**
-     * The namespace for a SAML-formatted Assertion document
-     */
-    const TYPE_SAML = 'urn:oasis:names:tc:SAML:1.0:assertion';
-
-    /**
-     * Constructor (disabled)
-     *
-     * @return void
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Returns an instance of a InfoCard Assertion object based on the XML data provided
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @param string $xmlData The XML-Formatted Assertion
-     * @return Zend_InfoCard_Xml_Assertion_Interface
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    static public function getInstance($xmlData)
-    {
-
-        if($xmlData instanceof Zend_InfoCard_Xml_Element) {
-            $strXmlData = $xmlData->asXML();
-        } else if (is_string($xmlData)) {
-            $strXmlData = $xmlData;
-        } else {
-            require_once 'Zend/InfoCard/Xml/Exception.php';
-            throw new Zend_InfoCard_Xml_Exception("Invalid Data provided to create instance");
-        }
-
-        $sxe = simplexml_load_string($strXmlData);
-
-        $namespaces = $sxe->getDocNameSpaces();
-
-        foreach($namespaces as $namespace) {
-            switch($namespace) {
-                case self::TYPE_SAML:
-                    include_once 'Zend/InfoCard/Xml/Assertion/Saml.php';
-                    return simplexml_load_string($strXmlData, 'Zend_InfoCard_Xml_Assertion_Saml', null);
-            }
-        }
-
-        require_once 'Zend/InfoCard/Xml/Exception.php';
-        throw new Zend_InfoCard_Xml_Exception("Unable to determine Assertion type by Namespace");
-    }
-}

+ 0 - 69
library/Zend/InfoCard/Xml/Assertion/Interface.php

@@ -1,69 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * The Interface required by any InfoCard Assertion Object implemented within the component
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Xml_Assertion_Interface
-{
-    /**
-     * Get the Assertion ID of the assertion
-     *
-     * @return string The Assertion ID
-     */
-    public function getAssertionID();
-
-    /**
-     * Return an array of attributes (claims) contained within the assertion
-     *
-     * @return array An array of attributes / claims within the assertion
-     */
-    public function getAttributes();
-
-    /**
-     * Get the Assertion URI for this type of Assertion
-     *
-     * @return string the Assertion URI
-     */
-    public function getAssertionURI();
-
-    /**
-     * Return an array of conditions which the assertions are predicated on
-     *
-     * @return array an array of conditions
-     */
-    public function getConditions();
-
-    /**
-     * Validate the conditions array returned from the getConditions() call
-     *
-     * @param array $conditions An array of condtions for the assertion taken from getConditions()
-     * @return mixed Boolean true on success, an array of condition, error message on failure
-     */
-    public function validateConditions(Array $conditions);
-}

+ 0 - 284
library/Zend/InfoCard/Xml/Assertion/Saml.php

@@ -1,284 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * Zend_InfoCard_Xml_Assertion_Interface
- */
-require_once 'Zend/InfoCard/Xml/Assertion/Interface.php';
-
-/**
- * A Xml Assertion Document in SAML Token format
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Assertion_Saml
-    extends Zend_InfoCard_Xml_Element
-    implements Zend_InfoCard_Xml_Assertion_Interface
-{
-
-    /**
-     * Audience Restriction Condition
-     */
-    const CONDITION_AUDIENCE = 'AudienceRestrictionCondition';
-
-    /**
-     * The URI for a 'bearer' confirmation
-     */
-    const CONFIRMATION_BEARER = 'urn:oasis:names:tc:SAML:1.0:cm:bearer';
-
-    /**
-     * The amount of time in seconds to buffer when checking conditions to ensure
-     * that differences between client/server clocks don't interfer too much
-     */
-    const CONDITION_TIME_ADJ = 3600; // +- 5 minutes
-
-    protected function _getServerName() {
-        return $_SERVER['SERVER_NAME'];
-    }
-
-    protected function _getServerPort() {
-        return $_SERVER['SERVER_PORT'];
-    }
-
-    /**
-     * Validate the conditions array returned from the getConditions() call
-     *
-     * @param array $conditions An array of condtions for the assertion taken from getConditions()
-     * @return mixed Boolean true on success, an array of condition, error message on failure
-     */
-    public function validateConditions(Array $conditions)
-    {
-
-        $currentTime = time();
-
-        if(!empty($conditions)) {
-
-            foreach($conditions as $condition => $conditionValue) {
-                switch(strtolower($condition)) {
-                    case 'audiencerestrictioncondition':
-
-                        $serverName = $this->_getServerName();
-                        $serverPort = $this->_getServerPort();
-
-                        $self_aliases[] = $serverName;
-                        $self_aliases[] = "{{$serverName}:{$serverPort}";
-
-                        $found = false;
-                        if(is_array($conditionValue)) {
-                            foreach($conditionValue as $audience) {
-
-                                list(,,$audience) = explode('/', $audience);
-                                if(in_array($audience, $self_aliases)) {
-                                    $found = true;
-                                    break;
-                                }
-                            }
-                        }
-
-                        if(!$found) {
-                            return array($condition, 'Could not find self in allowed audience list');
-                        }
-
-                        break;
-                    case 'notbefore':
-                        $notbeforetime = strtotime($conditionValue);
-
-                        if($currentTime < $notbeforetime) {
-                            if($currentTime + self::CONDITION_TIME_ADJ < $notbeforetime) {
-                                return array($condition, 'Current time is before specified window');
-                            }
-                        }
-
-                        break;
-                    case 'notonorafter':
-                        $notonoraftertime = strtotime($conditionValue);
-
-                        if($currentTime >= $notonoraftertime) {
-                            if($currentTime - self::CONDITION_TIME_ADJ >= $notonoraftertime) {
-                                return array($condition, 'Current time is after specified window');
-                            }
-                        }
-
-                        break;
-
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Get the Assertion URI for this type of Assertion
-     *
-     * @return string the Assertion URI
-     */
-    public function getAssertionURI()
-    {
-        return Zend_InfoCard_Xml_Assertion::TYPE_SAML;
-    }
-
-    /**
-     * Get the Major Version of the SAML Assertion
-     *
-     * @return integer The major version number
-     */
-    public function getMajorVersion()
-    {
-        return (int)(string)$this['MajorVersion'];
-    }
-
-    /**
-     * The Minor Version of the SAML Assertion
-     *
-     * @return integer The minor version number
-     */
-    public function getMinorVersion()
-    {
-        return (int)(string)$this['MinorVersion'];
-    }
-
-    /**
-     * Get the Assertion ID of the assertion
-     *
-     * @return string The Assertion ID
-     */
-    public function getAssertionID()
-    {
-        return (string)$this['AssertionID'];
-    }
-
-    /**
-     * Get the Issuer URI of the assertion
-     *
-     * @return string the URI of the assertion Issuer
-     */
-    public function getIssuer()
-    {
-        return (string)$this['Issuer'];
-    }
-
-    /**
-     * Get the Timestamp of when the assertion was issued
-     *
-     * @return integer a UNIX timestamp representing when the assertion was issued
-     */
-    public function getIssuedTimestamp()
-    {
-        return strtotime((string)$this['IssueInstant']);
-    }
-
-    /**
-     * Return an array of conditions which the assertions are predicated on
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return array an array of conditions
-     */
-    public function getConditions()
-    {
-
-        list($conditions) = $this->xpath("//saml:Conditions");
-
-        if(!($conditions instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the saml:Conditions block");
-        }
-
-        $retval = array();
-
-        foreach($conditions->children('urn:oasis:names:tc:SAML:1.0:assertion') as $key => $value) {
-            switch($key) {
-                case self::CONDITION_AUDIENCE:
-                    foreach($value->children('urn:oasis:names:tc:SAML:1.0:assertion') as $audience_key => $audience_value) {
-                        if($audience_key == 'Audience') {
-                            $retval[$key][] = (string)$audience_value;
-                        }
-                    }
-                    break;
-            }
-        }
-
-        $retval['NotBefore'] = (string)$conditions['NotBefore'];
-        $retval['NotOnOrAfter'] = (string)$conditions['NotOnOrAfter'];
-
-        return $retval;
-    }
-
-    /**
-     * Get they KeyInfo element for the Subject KeyInfo block
-     *
-     * @todo Not Yet Implemented
-     * @ignore
-     */
-    public function getSubjectKeyInfo()
-    {
-        /**
-         * @todo Not sure if this is part of the scope for now..
-         */
-
-        if($this->getConfirmationMethod() == self::CONFIRMATION_BEARER) {
-            throw new Zend_InfoCard_Xml_Exception("Cannot get Subject Key Info when Confirmation Method was Bearer");
-        }
-    }
-
-    /**
-     * Return the Confirmation Method URI used in the Assertion
-     *
-     * @return string The confirmation method URI
-     */
-    public function getConfirmationMethod()
-    {
-        list($confirmation) = $this->xPath("//saml:ConfirmationMethod");
-        return (string)$confirmation;
-    }
-
-    /**
-     * Return an array of attributes (claims) contained within the assertion
-     *
-     * @return array An array of attributes / claims within the assertion
-     */
-    public function getAttributes()
-    {
-        $attributes = $this->xPath('//saml:Attribute');
-
-        $retval = array();
-        foreach($attributes as $key => $value) {
-
-            $retkey = (string)$value['AttributeNamespace'].'/'.(string)$value['AttributeName'];
-
-            $retval[$retkey]['name'] = (string)$value['AttributeName'];
-            $retval[$retkey]['namespace'] = (string)$value['AttributeNamespace'];
-
-            list($aValue) = $value->children('urn:oasis:names:tc:SAML:1.0:assertion');
-            $retval[$retkey]['value'] = (string)$aValue;
-        }
-
-        return $retval;
-    }
-}

+ 0 - 107
library/Zend/InfoCard/Xml/Element.php

@@ -1,107 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element_Interface
- */
-require_once 'Zend/InfoCard/Xml/Element/Interface.php';
-
-/**
- * An abstract class representing a an XML data block
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-abstract class Zend_InfoCard_Xml_Element
-    extends SimpleXMLElement
-    implements Zend_InfoCard_Xml_Element_Interface
-{
-    /**
-     * Convert the object to a string by displaying its XML content
-     *
-     * @return string an XML representation of the object
-     */
-    public function __toString()
-    {
-        return $this->asXML();
-    }
-
-    /**
-     * Converts an XML Element object into a DOM object
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @param Zend_InfoCard_Xml_Element $e The object to convert
-     * @return DOMElement A DOMElement representation of the same object
-     */
-    static public function convertToDOM(Zend_InfoCard_Xml_Element $e)
-    {
-        $dom = dom_import_simplexml($e);
-
-        if(!($dom instanceof DOMElement)) {
-            // Zend_InfoCard_Xml_Element exntes SimpleXMLElement, so this should *never* fail
-            // @codeCoverageIgnoreStart
-            require_once 'Zend/InfoCard/Xml/Exception.php';
-            throw new Zend_InfoCard_Xml_Exception("Failed to convert between SimpleXML and DOM");
-            // @codeCoverageIgnoreEnd
-        }
-
-        return $dom;
-    }
-
-    /**
-     * Converts a DOMElement object into the specific class
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @param DOMElement $e The DOMElement object to convert
-     * @param string $classname The name of the class to convert it to (must inhert from Zend_InfoCard_Xml_Element)
-     * @return Zend_InfoCard_Xml_Element a Xml Element object from the DOM element
-     */
-    static public function convertToObject(DOMElement $e, $classname)
-    {
-        if (!class_exists($classname)) {
-            require_once 'Zend/Loader.php';
-            Zend_Loader::loadClass($classname);
-        }
-
-        $reflection = new ReflectionClass($classname);
-
-        if(!$reflection->isSubclassOf('Zend_InfoCard_Xml_Element')) {
-            require_once 'Zend/InfoCard/Xml/Exception.php';
-            throw new Zend_InfoCard_Xml_Exception("DOM element must be converted to an instance of Zend_InfoCard_Xml_Element");
-        }
-
-        $sxe = simplexml_import_dom($e, $classname);
-
-        if(!($sxe instanceof Zend_InfoCard_Xml_Element)) {
-            // Since we just checked to see if this was a subclass of Zend_infoCard_Xml_Element this shoudl never fail
-            // @codeCoverageIgnoreStart
-            require_once 'Zend/InfoCard/Xml/Exception.php';
-            throw new Zend_InfoCard_Xml_Exception("Failed to convert between DOM and SimpleXML");
-            // @codeCoverageIgnoreEnd
-        }
-
-        return $sxe;
-    }
-}

+ 0 - 44
library/Zend/InfoCard/Xml/Element/Interface.php

@@ -1,44 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * The Interface used to represent an XML Data Type
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Xml_Element_Interface
-{
-    /**
-     * Return the data within the object as an XML document
-     */
-    public function asXML();
-
-    /**
-     * Magic function which allows us to treat the object as a string to return XML
-     * (same as the asXML() method)
-     */
-    public function __toString();
-}

+ 0 - 75
library/Zend/InfoCard/Xml/EncryptedData.php

@@ -1,75 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * A factory class for producing Zend_InfoCard_Xml_EncryptedData objects based on
- * the type of XML document provided
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-final class Zend_InfoCard_Xml_EncryptedData
-{
-    /**
-     * Constructor (disabled)
-     *
-     * @return void
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Returns an instance of the class
-     *
-     * @param string $xmlData The XML EncryptedData String
-     * @return Zend_InfoCard_Xml_EncryptedData_Abstract
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    static public function getInstance($xmlData)
-    {
-
-        if($xmlData instanceof Zend_InfoCard_Xml_Element) {
-            $strXmlData = $xmlData->asXML();
-        } else if (is_string($xmlData)) {
-            $strXmlData = $xmlData;
-        } else {
-            require_once 'Zend/InfoCard/Xml/Exception.php';
-            throw new Zend_InfoCard_Xml_Exception("Invalid Data provided to create instance");
-        }
-
-        $sxe = simplexml_load_string($strXmlData);
-
-        switch($sxe['Type']) {
-            case 'http://www.w3.org/2001/04/xmlenc#Element':
-                include_once 'Zend/InfoCard/Xml/EncryptedData/XmlEnc.php';
-                return simplexml_load_string($strXmlData, 'Zend_InfoCard_Xml_EncryptedData_XmlEnc');
-            default:
-                require_once 'Zend/InfoCard/Xml/Exception.php';
-                throw new Zend_InfoCard_Xml_Exception("Unknown EncryptedData type found");
-                break;
-        }
-    }
-}

+ 0 - 92
library/Zend/InfoCard/Xml/EncryptedData/Abstract.php

@@ -1,92 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * Zend_InfoCard_Xml_KeyInfo
- */
-require_once 'Zend/InfoCard/Xml/KeyInfo.php';
-
-/**
- * An abstract class representing a generic EncryptedData XML block. This class is extended
- * into a specific type of EncryptedData XML block (i.e. XmlEnc) as necessary
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-abstract class Zend_InfoCard_Xml_EncryptedData_Abstract extends Zend_InfoCard_Xml_Element
-{
-
-    /**
-     * Returns the KeyInfo Block
-     *
-     * @return Zend_InfoCard_Xml_KeyInfo_Abstract
-     */
-    public function getKeyInfo()
-    {
-        return Zend_InfoCard_Xml_KeyInfo::getInstance($this->KeyInfo[0]);
-    }
-
-    /**
-     * Return the Encryption method used to encrypt the assertion document
-     * (the symmetric cipher)
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return string The URI of the Symmetric Encryption Method used
-     */
-    public function getEncryptionMethod()
-    {
-
-        /**
-         * @todo This is pretty hacky unless we can always be confident that the first
-         * EncryptionMethod block is the correct one (the AES or compariable symetric algorithm)..
-         * the second is the PK method if provided.
-         */
-        list($encryption_method) = $this->xpath("//enc:EncryptionMethod");
-
-        if(!($encryption_method instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the enc:EncryptionMethod symmetric encryption block");
-        }
-
-        $dom = self::convertToDOM($encryption_method);
-
-        if(!$dom->hasAttribute('Algorithm')) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to determine the encryption algorithm in the Symmetric enc:EncryptionMethod XML block");
-        }
-
-        return $dom->getAttribute('Algorithm');
-    }
-
-    /**
-     * Returns the value of the encrypted block
-     *
-     * @return string the value of the encrypted CipherValue block
-     */
-    abstract function getCipherValue();
-}

+ 0 - 64
library/Zend/InfoCard/Xml/EncryptedData/XmlEnc.php

@@ -1,64 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_EncryptedData/Abstract.php
- */
-require_once 'Zend/InfoCard/Xml/EncryptedData/Abstract.php';
-
-/**
- * An XmlEnc formatted EncryptedData XML block
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_EncryptedData_XmlEnc extends Zend_InfoCard_Xml_EncryptedData_Abstract
-{
-
-    /**
-     * Returns the Encrypted CipherValue block from the EncryptedData XML document
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return string The value of the CipherValue block base64 encoded
-     */
-    public function getCipherValue()
-    {
-        $this->registerXPathNamespace('enc', 'http://www.w3.org/2001/04/xmlenc#');
-
-        list(,$cipherdata) = $this->xpath("//enc:CipherData");
-
-        if(!($cipherdata instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the enc:CipherData block");
-        }
-        $cipherdata->registerXPathNamespace('enc', 'http://www.w3.org/2001/04/xmlenc#');
-        list(,$ciphervalue) = $cipherdata->xpath("//enc:CipherValue");
-
-        if(!($ciphervalue instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to fidn the enc:CipherValue block");
-        }
-
-        return (string)$ciphervalue;
-    }
-}

+ 0 - 174
library/Zend/InfoCard/Xml/EncryptedKey.php

@@ -1,174 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * Zend_InfoCard_Xml_EncryptedKey
- */
-require_once 'Zend/InfoCard/Xml/EncryptedKey.php';
-
-/**
- * Zend_InfoCard_Xml_KeyInfo_Interface
- */
-require_once 'Zend/InfoCard/Xml/KeyInfo/Interface.php';
-
-/**
- * An object representing an Xml EncryptedKEy block
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_EncryptedKey
-    extends Zend_InfoCard_Xml_Element
-    implements Zend_InfoCard_Xml_KeyInfo_Interface
-{
-    /**
-     * Return an instance of the object based on input XML Data
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @param string $xmlData The EncryptedKey XML Block
-     * @return Zend_InfoCard_Xml_EncryptedKey
-     */
-    static public function getInstance($xmlData)
-    {
-        if($xmlData instanceof Zend_InfoCard_Xml_Element) {
-            $strXmlData = $xmlData->asXML();
-        } else if (is_string($xmlData)) {
-            $strXmlData = $xmlData;
-        } else {
-            throw new Zend_InfoCard_Xml_Exception("Invalid Data provided to create instance");
-        }
-
-        $sxe = simplexml_load_string($strXmlData);
-
-        if($sxe->getName() != "EncryptedKey") {
-            throw new Zend_InfoCard_Xml_Exception("Invalid XML Block provided for EncryptedKey");
-        }
-
-        return simplexml_load_string($strXmlData, "Zend_InfoCard_Xml_EncryptedKey");
-    }
-
-    /**
-     * Returns the Encyption Method Algorithm URI of the block
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return string the Encryption method algorithm URI
-     */
-    public function getEncryptionMethod()
-    {
-
-        $this->registerXPathNamespace('e', 'http://www.w3.org/2001/04/xmlenc#');
-        list($encryption_method) = $this->xpath("//e:EncryptionMethod");
-
-        if(!($encryption_method instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the e:EncryptionMethod KeyInfo encryption block");
-        }
-
-        $dom = self::convertToDOM($encryption_method);
-
-        if(!$dom->hasAttribute('Algorithm')) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to determine the encryption algorithm in the Symmetric enc:EncryptionMethod XML block");
-        }
-
-        return $dom->getAttribute('Algorithm');
-
-    }
-
-    /**
-     * Returns the Digest Method Algorithm URI used
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return string the Digest Method Algorithm URI
-     */
-    public function getDigestMethod()
-    {
-        $this->registerXPathNamespace('e', 'http://www.w3.org/2001/04/xmlenc#');
-        list($encryption_method) = $this->xpath("//e:EncryptionMethod");
-
-        if(!($encryption_method instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the e:EncryptionMethod KeyInfo encryption block");
-        }
-
-        if(!($encryption_method->DigestMethod instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the DigestMethod block");
-        }
-
-        $dom = self::convertToDOM($encryption_method->DigestMethod);
-
-        if(!$dom->hasAttribute('Algorithm')) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to determine the digest algorithm for the symmetric Keyinfo");
-        }
-
-        return $dom->getAttribute('Algorithm');
-
-    }
-
-    /**
-     * Returns the KeyInfo block object
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return Zend_InfoCard_Xml_KeyInfo_Abstract
-     */
-    public function getKeyInfo()
-    {
-
-        if(isset($this->KeyInfo)) {
-            return Zend_InfoCard_Xml_KeyInfo::getInstance($this->KeyInfo);
-        }
-
-        throw new Zend_InfoCard_Xml_Exception("Unable to locate a KeyInfo block");
-    }
-
-    /**
-     * Return the encrypted value of the block in base64 format
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return string The Value of the CipherValue block in base64 format
-     */
-    public function getCipherValue()
-    {
-
-        $this->registerXPathNamespace('e', 'http://www.w3.org/2001/04/xmlenc#');
-
-        list($cipherdata) = $this->xpath("//e:CipherData");
-
-        if(!($cipherdata instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to find the e:CipherData block");
-        }
-
-        $cipherdata->registerXPathNameSpace('enc', 'http://www.w3.org/2001/04/xmlenc#');
-        list($ciphervalue) = $cipherdata->xpath("//enc:CipherValue");
-
-        if(!($ciphervalue instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to fidn the enc:CipherValue block");
-        }
-
-        return (string)$ciphervalue;
-    }
-}

+ 0 - 37
library/Zend/InfoCard/Xml/Exception.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Exception
- */
-require_once 'Zend/InfoCard/Exception.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Exception extends Zend_InfoCard_Exception
-{
-}

+ 0 - 90
library/Zend/InfoCard/Xml/KeyInfo.php

@@ -1,90 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * Factory class to return a XML KeyInfo block based on input XML
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_KeyInfo
-{
-    /**
-     * Constructor (disabled)
-     *
-     * @return void
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Returns an instance of KeyInfo object based on the input KeyInfo XML block
-     *
-     * @param string $xmlData The KeyInfo XML Block
-     * @return Zend_InfoCard_Xml_KeyInfo_Abstract
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    static public function getInstance($xmlData)
-    {
-
-        if($xmlData instanceof Zend_InfoCard_Xml_Element) {
-            $strXmlData = $xmlData->asXML();
-        } else if (is_string($xmlData)) {
-            $strXmlData = $xmlData;
-        } else {
-            throw new Zend_InfoCard_Xml_Exception("Invalid Data provided to create instance");
-        }
-
-        $sxe = simplexml_load_string($strXmlData);
-
-        $namespaces = $sxe->getDocNameSpaces();
-
-        if(!empty($namespaces)) {
-            foreach($sxe->getDocNameSpaces() as $namespace) {
-                switch($namespace) {
-                    case 'http://www.w3.org/2000/09/xmldsig#':
-                        include_once 'Zend/InfoCard/Xml/KeyInfo/XmlDSig.php';
-                        return simplexml_load_string($strXmlData, 'Zend_InfoCard_Xml_KeyInfo_XmlDSig');
-                    default:
-
-                        throw new Zend_InfoCard_Xml_Exception("Unknown KeyInfo Namespace provided");
-                    // We are ignoring these lines, as XDebug reports each as a "non executed" line
-                    // which breaks my coverage %
-                    // @codeCoverageIgnoreStart
-                }
-            }
-        }
-        // @codeCoverageIgnoreEnd
-
-        include_once 'Zend/InfoCard/Xml/KeyInfo/Default.php';
-        return simplexml_load_string($strXmlData, 'Zend_InfoCard_Xml_KeyInfo_Default');
-    }
-}

+ 0 - 37
library/Zend/InfoCard/Xml/KeyInfo/Abstract.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-abstract class Zend_InfoCard_Xml_KeyInfo_Abstract extends Zend_InfoCard_Xml_Element
-{
-}

+ 0 - 64
library/Zend/InfoCard/Xml/KeyInfo/Default.php

@@ -1,64 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_KeyInfo_Abstract
- */
-require_once 'Zend/InfoCard/Xml/KeyInfo/Abstract.php';
-
-/**
- * Zend_InfoCard_Xml_SecurityTokenReference
- */
-require_once 'Zend/InfoCard/Xml/SecurityTokenReference.php';
-
-/**
- * An object representation of a XML <KeyInfo> block which doesn't provide a namespace
- * In this context, it is assumed to mean that it is the type of KeyInfo block which
- * contains the SecurityTokenReference
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_KeyInfo_Default extends Zend_InfoCard_Xml_KeyInfo_Abstract
-{
-    /**
-     * Returns the object representation of the SecurityTokenReference block
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return Zend_InfoCard_Xml_SecurityTokenReference
-     */
-    public function getSecurityTokenReference()
-    {
-        $this->registerXPathNamespace('o', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd');
-
-        list($sectokenref) = $this->xpath('//o:SecurityTokenReference');
-
-        if(!($sectokenref instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception('Could not locate the Security Token Reference');
-        }
-
-        return Zend_InfoCard_Xml_SecurityTokenReference::getInstance($sectokenref);
-    }
-}

+ 0 - 38
library/Zend/InfoCard/Xml/KeyInfo/Interface.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Xml_KeyInfo_Interface
-{
-    /**
-     * Return an object representing a KeyInfo data type
-     *
-     * @return Zend_InfoCard_Xml_KeyInfo
-     */
-    public function getKeyInfo();
-}

+ 0 - 76
library/Zend/InfoCard/Xml/KeyInfo/XmlDSig.php

@@ -1,76 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_KeyInfo_Abstract
- */
-require_once 'Zend/InfoCard/Xml/KeyInfo/Abstract.php';
-
-/**
- * Zend_InfoCard_Xml_EncryptedKey
- */
-require_once 'Zend/InfoCard/Xml/EncryptedKey.php';
-
-/**
- * Zend_InfoCard_Xml_KeyInfo_Interface
- */
-require_once 'Zend/InfoCard/Xml/KeyInfo/Interface.php';
-
-/**
- * Represents a Xml Digital Signature XML Data Block
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_KeyInfo_XmlDSig
-    extends Zend_InfoCard_Xml_KeyInfo_Abstract
-    implements Zend_InfoCard_Xml_KeyInfo_Interface
-{
-    /**
-     * Returns an instance of the EncryptedKey Data Block
-     *
-     * @throws Zend_InfoCard_Xml_Exception
-     * @return Zend_InfoCard_Xml_EncryptedKey
-     */
-    public function getEncryptedKey()
-    {
-        $this->registerXPathNamespace('e', 'http://www.w3.org/2001/04/xmlenc#');
-        list($encryptedkey) = $this->xpath('//e:EncryptedKey');
-
-        if(!($encryptedkey instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Failed to retrieve encrypted key");
-        }
-
-        return Zend_InfoCard_Xml_EncryptedKey::getInstance($encryptedkey);
-    }
-
-    /**
-     * Returns the KeyInfo Block within the encrypted key
-     *
-     * @return Zend_InfoCard_Xml_KeyInfo_Default
-     */
-    public function getKeyInfo()
-    {
-        return $this->getEncryptedKey()->getKeyInfo();
-    }
-}

+ 0 - 327
library/Zend/InfoCard/Xml/Security.php

@@ -1,327 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Security_Transform
- */
-require_once 'Zend/InfoCard/Xml/Security/Transform.php';
-
-/**
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security
-{
-    /**
-     * ASN.1 type INTEGER class
-     */
-    const ASN_TYPE_INTEGER = 0x02;
-
-    /**
-     * ASN.1 type BIT STRING class
-     */
-    const ASN_TYPE_BITSTRING = 0x03;
-
-    /**
-     * ASN.1 type SEQUENCE class
-     */
-    const ASN_TYPE_SEQUENCE = 0x30;
-
-    /**
-     * The URI for Canonical Method C14N Exclusive
-     */
-    const CANONICAL_METHOD_C14N_EXC = 'http://www.w3.org/2001/10/xml-exc-c14n#';
-
-    /**
-     * The URI for Signature Method SHA1
-     */
-    const SIGNATURE_METHOD_SHA1 = 'http://www.w3.org/2000/09/xmldsig#rsa-sha1';
-
-    /**
-     * The URI for Digest Method SHA1
-     */
-    const DIGEST_METHOD_SHA1 = 'http://www.w3.org/2000/09/xmldsig#sha1';
-
-    /**
-     * The Identifier for RSA Keys
-     */
-    const RSA_KEY_IDENTIFIER = '300D06092A864886F70D0101010500';
-
-    /**
-     * Constructor  (disabled)
-     *
-     * @return void
-     */
-    private function __construct()
-    {
-    }
-
-    /**
-     * Validates the signature of a provided XML block
-     *
-     * @param  string $strXMLInput An XML block containing a Signature
-     * @return bool True if the signature validated, false otherwise
-     * @throws Zend_InfoCard_Xml_Security_Exception
-     */
-    static public function validateXMLSignature($strXMLInput)
-    {
-        if(!extension_loaded('openssl')) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("You must have the openssl extension installed to use this class");
-        }
-
-        $sxe = simplexml_load_string($strXMLInput);
-
-        if(!isset($sxe->Signature)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Could not identify XML Signature element");
-        }
-
-        if(!isset($sxe->Signature->SignedInfo)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Signature is missing a SignedInfo block");
-        }
-
-        if(!isset($sxe->Signature->SignatureValue)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Signature is missing a SignatureValue block");
-        }
-
-        if(!isset($sxe->Signature->KeyInfo)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Signature is missing a KeyInfo block");
-        }
-
-        if(!isset($sxe->Signature->KeyInfo->KeyValue)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Signature is missing a KeyValue block");
-        }
-
-        switch((string)$sxe->Signature->SignedInfo->CanonicalizationMethod['Algorithm']) {
-            case self::CANONICAL_METHOD_C14N_EXC:
-                $cMethod = (string)$sxe->Signature->SignedInfo->CanonicalizationMethod['Algorithm'];
-                break;
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Unknown or unsupported CanonicalizationMethod Requested");
-                break;
-        }
-
-        switch((string)$sxe->Signature->SignedInfo->SignatureMethod['Algorithm']) {
-            case self::SIGNATURE_METHOD_SHA1:
-                $sMethod = (string)$sxe->Signature->SignedInfo->SignatureMethod['Algorithm'];
-                break;
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Unknown or unsupported SignatureMethod Requested");
-                break;
-        }
-
-        switch((string)$sxe->Signature->SignedInfo->Reference->DigestMethod['Algorithm']) {
-            case self::DIGEST_METHOD_SHA1:
-                $dMethod = (string)$sxe->Signature->SignedInfo->Reference->DigestMethod['Algorithm'];
-                break;
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Unknown or unsupported DigestMethod Requested");
-                break;
-        }
-
-        $base64DecodeSupportsStrictParam = version_compare(PHP_VERSION, '5.2.0', '>=');
-
-        if ($base64DecodeSupportsStrictParam) {
-            $dValue = base64_decode((string)$sxe->Signature->SignedInfo->Reference->DigestValue, true);
-        } else {
-            $dValue = base64_decode((string)$sxe->Signature->SignedInfo->Reference->DigestValue);
-        }
-
-        if ($base64DecodeSupportsStrictParam) {
-            $signatureValue = base64_decode((string)$sxe->Signature->SignatureValue, true);
-        } else {
-            $signatureValue = base64_decode((string)$sxe->Signature->SignatureValue);
-        }
-
-        $transformer = new Zend_InfoCard_Xml_Security_Transform();
-
-        foreach($sxe->Signature->SignedInfo->Reference->Transforms->children() as $transform) {
-            $transformer->addTransform((string)$transform['Algorithm']);
-        }
-
-        $transformed_xml = $transformer->applyTransforms($strXMLInput);
-
-        $transformed_xml_binhash = pack("H*", sha1($transformed_xml));
-
-        if(!self::_secureStringCompare($transformed_xml_binhash, $dValue)) {
-            require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Exception("Locally Transformed XML does not match XML Document. Cannot Verify Signature");
-        }
-
-        $public_key = null;
-
-        switch(true) {
-            case isset($sxe->Signature->KeyInfo->KeyValue->X509Certificate):
-
-                $certificate = (string)$sxe->Signature->KeyInfo->KeyValue->X509Certificate;
-
-
-                $pem = "-----BEGIN CERTIFICATE-----\n" .
-                       wordwrap($certificate, 64, "\n", true) .
-                       "\n-----END CERTIFICATE-----";
-
-                $public_key = openssl_pkey_get_public($pem);
-
-                if(!$public_key) {
-                    require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                    throw new Zend_InfoCard_Xml_Security_Exception("Unable to extract and prcoess X509 Certificate from KeyValue");
-                }
-
-                break;
-            case isset($sxe->Signature->KeyInfo->KeyValue->RSAKeyValue):
-
-                if(!isset($sxe->Signature->KeyInfo->KeyValue->RSAKeyValue->Modulus) ||
-                   !isset($sxe->Signature->KeyInfo->KeyValue->RSAKeyValue->Exponent)) {
-                       require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                       throw new Zend_InfoCard_Xml_Security_Exception("RSA Key Value not in Modulus/Exponent form");
-                }
-
-                $modulus = base64_decode((string)$sxe->Signature->KeyInfo->KeyValue->RSAKeyValue->Modulus);
-                $exponent = base64_decode((string)$sxe->Signature->KeyInfo->KeyValue->RSAKeyValue->Exponent);
-
-                $pem_public_key = self::_getPublicKeyFromModExp($modulus, $exponent);
-
-                $public_key = openssl_pkey_get_public ($pem_public_key);
-
-                break;
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Unable to determine or unsupported representation of the KeyValue block");
-        }
-
-        $transformer = new Zend_InfoCard_Xml_Security_Transform();
-        $transformer->addTransform((string)$sxe->Signature->SignedInfo->CanonicalizationMethod['Algorithm']);
-
-        // The way we are doing our XML processing requires that we specifically add this
-        // (even though it's in the <Signature> parent-block).. otherwise, our canonical form
-        // fails signature verification
-        $sxe->Signature->SignedInfo->addAttribute('xmlns', 'http://www.w3.org/2000/09/xmldsig#');
-
-        $canonical_signedinfo = $transformer->applyTransforms($sxe->Signature->SignedInfo->asXML());
-
-        if(@openssl_verify($canonical_signedinfo, $signatureValue, $public_key)) {
-            return (string)$sxe->Signature->SignedInfo->Reference['URI'];
-        }
-
-        return false;
-    }
-
-    /**
-     * Transform an RSA Key in Modulus/Exponent format into a PEM encoding and
-     * return an openssl resource for it
-     *
-     * @param string $modulus The RSA Modulus in binary format
-     * @param string $exponent The RSA exponent in binary format
-     * @return string The PEM encoded version of the key
-     */
-    static protected function _getPublicKeyFromModExp($modulus, $exponent)
-    {
-        $modulusInteger  = self::_encodeValue($modulus, self::ASN_TYPE_INTEGER);
-        $exponentInteger = self::_encodeValue($exponent, self::ASN_TYPE_INTEGER);
-        $modExpSequence  = self::_encodeValue($modulusInteger . $exponentInteger, self::ASN_TYPE_SEQUENCE);
-        $modExpBitString = self::_encodeValue($modExpSequence, self::ASN_TYPE_BITSTRING);
-
-        $binRsaKeyIdentifier = pack( "H*", self::RSA_KEY_IDENTIFIER );
-
-        $publicKeySequence = self::_encodeValue($binRsaKeyIdentifier . $modExpBitString, self::ASN_TYPE_SEQUENCE);
-
-        $publicKeyInfoBase64 = base64_encode( $publicKeySequence );
-
-        $publicKeyString = "-----BEGIN PUBLIC KEY-----\n";
-        $publicKeyString .= wordwrap($publicKeyInfoBase64, 64, "\n", true);
-        $publicKeyString .= "\n-----END PUBLIC KEY-----\n";
-
-        return $publicKeyString;
-    }
-
-    /**
-     * Encode a limited set of data types into ASN.1 encoding format
-     * which is used in X.509 certificates
-     *
-     * @param string $data The data to encode
-     * @param const $type The encoding format constant
-     * @return string The encoded value
-     * @throws Zend_InfoCard_Xml_Security_Exception
-     */
-    static protected function _encodeValue($data, $type)
-    {
-        // Null pad some data when we get it (integer values > 128 and bitstrings)
-        if( (($type == self::ASN_TYPE_INTEGER) && (ord($data) > 0x7f)) ||
-            ($type == self::ASN_TYPE_BITSTRING)) {
-                $data = "\0$data";
-        }
-
-        $len = strlen($data);
-
-        // encode the value based on length of the string
-        // I'm fairly confident that this is by no means a complete implementation
-        // but it is enough for our purposes
-        switch(true) {
-            case ($len < 128):
-                return sprintf("%c%c%s", $type, $len, $data);
-            case ($len < 0x0100):
-                return sprintf("%c%c%c%s", $type, 0x81, $len, $data);
-            case ($len < 0x010000):
-                return sprintf("%c%c%c%c%s", $type, 0x82, $len / 0x0100, $len % 0x0100, $data);
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Could not encode value");
-        }
-
-        require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-        throw new Zend_InfoCard_Xml_Security_Exception("Invalid code path");
-    }
-
-    /**
-     * Securely compare two strings for equality while avoided C level memcmp()
-     * optimisations capable of leaking timing information useful to an attacker
-     * attempting to iteratively guess the unknown string (e.g. password) being
-     * compared against.
-     *
-     * @param string $a
-     * @param string $b
-     * @return bool
-     */
-    static protected function _secureStringCompare($a, $b)
-    {
-        if (strlen($a) !== strlen($b)) {
-            return false;
-        }
-        $result = 0;
-        for ($i = 0; $i < strlen($a); $i++) {
-            $result |= ord($a[$i]) ^ ord($b[$i]);
-        }
-        return $result == 0;
-    }
-}

+ 0 - 37
library/Zend/InfoCard/Xml/Security/Exception.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Exception
- */
-require_once 'Zend/InfoCard/Xml/Exception.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security_Exception extends Zend_InfoCard_Xml_Exception
-{
-}

+ 0 - 116
library/Zend/InfoCard/Xml/Security/Transform.php

@@ -1,116 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * A class to create a transform rule set based on XML URIs and then apply those rules
- * in the correct order to a given XML input
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security_Transform
-{
-    /**
-     * A list of transforms to apply
-     *
-     * @var array
-     */
-    protected $_transformList = array();
-
-    /**
-     * Returns the name of the transform class based on a given URI
-     *
-     * @throws Zend_InfoCard_Xml_Security_Exception
-     * @param string $uri The transform URI
-     * @return string The transform implementation class name
-     */
-    protected function _findClassbyURI($uri)
-    {
-        switch($uri) {
-            case 'http://www.w3.org/2000/09/xmldsig#enveloped-signature':
-                return 'Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature';
-            case 'http://www.w3.org/2001/10/xml-exc-c14n#':
-                return 'Zend_InfoCard_Xml_Security_Transform_XmlExcC14N';
-            default:
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Unknown or Unsupported Transformation Requested");
-        }
-    }
-
-    /**
-     * Add a Transform URI to the list of transforms to perform
-     *
-     * @param string $uri The Transform URI
-     * @return Zend_InfoCard_Xml_Security_Transform
-     */
-    public function addTransform($uri)
-    {
-        $class = $this->_findClassbyURI($uri);
-
-        $this->_transformList[] = array('uri' => $uri,
-                                        'class' => $class);
-        return $this;
-    }
-
-    /**
-     * Return the list of transforms to perform
-     *
-     * @return array The list of transforms
-     */
-    public function getTransformList()
-    {
-        return $this->_transformList;
-    }
-
-    /**
-     * Apply the transforms in the transform list to the input XML document
-     *
-     * @param string $strXmlDocument The input XML
-     * @return string The XML after the transformations have been applied
-     */
-    public function applyTransforms($strXmlDocument)
-    {
-        foreach($this->_transformList as $transform) {
-            if (!class_exists($transform['class'])) {
-                require_once 'Zend/Loader.php';
-                Zend_Loader::loadClass($transform['class']);
-            }
-
-            $transformer = new $transform['class'];
-
-            // We can't really test this check because it would require logic changes in the component itself
-            // @codeCoverageIgnoreStart
-            if(!($transformer instanceof Zend_InfoCard_Xml_Security_Transform_Interface)) {
-                require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-                throw new Zend_InfoCard_Xml_Security_Exception("Transforms must implement the Transform Interface");
-            }
-            // @codeCoverageIgnoreEnd
-
-            $strXmlDocument = $transformer->transform($strXmlDocument);
-        }
-
-        return $strXmlDocument;
-    }
-}

+ 0 - 60
library/Zend/InfoCard/Xml/Security/Transform/EnvelopedSignature.php

@@ -1,60 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Security_Transform_Interface
- */
-require_once 'Zend/InfoCard/Xml/Security/Transform/Interface.php';
-
-/**
- * A object implementing the EnvelopedSignature XML Transform
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security_Transform_EnvelopedSignature
-    implements Zend_InfoCard_Xml_Security_Transform_Interface
-{
-    /**
-     * Transforms the XML Document according to the EnvelopedSignature Transform
-     *
-     * @throws Zend_InfoCard_Xml_Security_Transform_Exception
-     * @param string $strXMLData The input XML data
-     * @return string the transformed XML data
-     */
-    public function transform($strXMLData)
-    {
-        $sxe = simplexml_load_string($strXMLData);
-
-        if(!$sxe->Signature) {
-            require_once 'Zend/InfoCard/Xml/Security/Transform/Exception.php';
-            throw new Zend_InfoCard_Xml_Security_Transform_Exception("Unable to locate Signature Block for EnvelopedSignature Transform");
-        }
-
-        unset($sxe->Signature);
-
-        return $sxe->asXML();
-    }
-}

+ 0 - 37
library/Zend/InfoCard/Xml/Security/Transform/Exception.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Security_Exception
- */
-require_once 'Zend/InfoCard/Xml/Security/Exception.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security_Transform_Exception extends Zend_InfoCard_Xml_Security_Exception
-{
-}

+ 0 - 43
library/Zend/InfoCard/Xml/Security/Transform/Interface.php

@@ -1,43 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Interface for XML Security Transforms
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-interface Zend_InfoCard_Xml_Security_Transform_Interface
-{
-    /**
-     * Transform the given XML string according to the transform rules
-     * implemented by the object using this interface
-     *
-     * @throws Zend_InfoCard_Xml_Security_Transform_Exception
-     * @param string $strXmlData the input XML
-     * @return string the output XML
-     */
-    public function transform($strXmlData);
-}

+ 0 - 59
library/Zend/InfoCard/Xml/Security/Transform/XmlExcC14N.php

@@ -1,59 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Security_Transform_Interface
- */
-require_once 'Zend/InfoCard/Xml/Security/Transform/Interface.php';
-
-/**
- * A Transform to perform C14n XML Exclusive Canonicalization
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml_Security
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_Security_Transform_XmlExcC14N
-    implements Zend_InfoCard_Xml_Security_Transform_Interface
-{
-    /**
-     * Transform the input XML based on C14n XML Exclusive Canonicalization rules
-     *
-     * @throws Zend_InfoCard_Xml_Security_Transform_Exception
-     * @param string $strXMLData The input XML
-     * @return string The output XML
-     */
-    public function transform($strXMLData)
-    {
-        $dom = new DOMDocument();
-        $dom->loadXML($strXMLData);
-
-        if(method_exists($dom, 'C14N')) {
-            return $dom->C14N(true, false);
-        }
-
-        require_once 'Zend/InfoCard/Xml/Security/Transform/Exception.php';
-        throw new Zend_InfoCard_Xml_Security_Transform_Exception("This transform requires the C14N() method to exist in the DOM extension");
-    }
-}

+ 0 - 173
library/Zend/InfoCard/Xml/SecurityTokenReference.php

@@ -1,173 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-/**
- * Zend_InfoCard_Xml_Element
- */
-require_once 'Zend/InfoCard/Xml/Element.php';
-
-/**
- * Represents a SecurityTokenReference XML block
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage Zend_InfoCard_Xml
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_InfoCard_Xml_SecurityTokenReference extends Zend_InfoCard_Xml_Element
-{
-    /**
-     * Base64 Binary Encoding URI
-     */
-    const ENCODING_BASE64BIN = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary';
-
-    /**
-     * Return an instance of the object based on the input XML
-     *
-     * @param string $xmlData The SecurityTokenReference XML Block
-     * @return Zend_InfoCard_Xml_SecurityTokenReference
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    static public function getInstance($xmlData)
-    {
-        if($xmlData instanceof Zend_InfoCard_Xml_Element) {
-            $strXmlData = $xmlData->asXML();
-        } else if (is_string($xmlData)) {
-            $strXmlData = $xmlData;
-        } else {
-            throw new Zend_InfoCard_Xml_Exception("Invalid Data provided to create instance");
-        }
-
-        $sxe = simplexml_load_string($strXmlData);
-
-        if($sxe->getName() != "SecurityTokenReference") {
-            throw new Zend_InfoCard_Xml_Exception("Invalid XML Block provided for SecurityTokenReference");
-        }
-
-        return simplexml_load_string($strXmlData, "Zend_InfoCard_Xml_SecurityTokenReference");
-    }
-
-    /**
-     * Return the Key Identifier XML Object
-     *
-     * @return Zend_InfoCard_Xml_Element
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    protected function _getKeyIdentifier()
-    {
-        $this->registerXPathNamespace('o', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd');
-        list($keyident) = $this->xpath('//o:KeyIdentifier');
-
-        if(!($keyident instanceof Zend_InfoCard_Xml_Element)) {
-            throw new Zend_InfoCard_Xml_Exception("Failed to retrieve Key Identifier");
-        }
-
-        return $keyident;
-    }
-
-    /**
-     * Return the Key URI identifying the thumbprint type used
-     *
-     * @return string The thumbprint type URI
-     * @throws  Zend_InfoCard_Xml_Exception
-     */
-    public function getKeyThumbprintType()
-    {
-
-        $keyident = $this->_getKeyIdentifier();
-
-        $dom = self::convertToDOM($keyident);
-
-        if(!$dom->hasAttribute('ValueType')) {
-            throw new Zend_InfoCard_Xml_Exception("Key Identifier did not provide a type for the value");
-        }
-
-        return $dom->getAttribute('ValueType');
-    }
-
-
-    /**
-     * Return the thumbprint encoding type used as a URI
-     *
-     * @return string the URI of the thumbprint encoding used
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    public function getKeyThumbprintEncodingType()
-    {
-
-        $keyident = $this->_getKeyIdentifier();
-
-        $dom = self::convertToDOM($keyident);
-
-        if(!$dom->hasAttribute('EncodingType')) {
-            throw new Zend_InfoCard_Xml_Exception("Unable to determine the encoding type for the key identifier");
-        }
-
-        return $dom->getAttribute('EncodingType');
-    }
-
-    /**
-     * Get the key reference data used to identify the public key
-     *
-     * @param bool $decode if true, will return a decoded version of the key
-     * @return string the key reference thumbprint, either in binary or encoded form
-     * @throws Zend_InfoCard_Xml_Exception
-     */
-    public function getKeyReference($decode = true)
-    {
-        $keyIdentifier = $this->_getKeyIdentifier();
-
-        $dom = self::convertToDOM($keyIdentifier);
-        $encoded = $dom->nodeValue;
-
-        if(empty($encoded)) {
-            throw new Zend_InfoCard_Xml_Exception("Could not find the Key Reference Encoded Value");
-        }
-
-        if($decode) {
-
-            $decoded = "";
-            switch($this->getKeyThumbprintEncodingType()) {
-                case self::ENCODING_BASE64BIN:
-
-                    if(version_compare(PHP_VERSION, "5.2.0", ">=")) {
-                        $decoded = base64_decode($encoded, true);
-                    } else {
-                        $decoded = base64_decode($encoded);
-                    }
-
-                    break;
-                default:
-                    throw new Zend_InfoCard_Xml_Exception("Unknown Key Reference Encoding Type: {$this->getKeyThumbprintEncodingType()}");
-            }
-
-            if(!$decoded || empty($decoded)) {
-                throw new Zend_InfoCard_Xml_Exception("Failed to decode key reference");
-            }
-
-            return $decoded;
-        }
-
-        return $encoded;
-    }
-}

+ 0 - 2
tests/Zend/AllTests.php

@@ -55,7 +55,6 @@ require_once 'Zend/Filter/AllTests.php';
 require_once 'Zend/Form/AllTests.php';
 require_once 'Zend/Gdata/AllTests.php';
 require_once 'Zend/Http/AllTests.php';
-require_once 'Zend/InfoCard/AllTests.php';
 require_once 'Zend/JsonTest.php';
 require_once 'Zend/Json/AllTests.php';
 require_once 'Zend/Layout/AllTests.php';
@@ -198,7 +197,6 @@ class Zend_AllTests
         $suite->addTest(Zend_Form_AllTests::suite());
         $suite->addTest(Zend_Gdata_AllTests::suite());
         $suite->addTest(Zend_Http_AllTests::suite());
-        $suite->addTest(Zend_InfoCard_AllTests::suite());
         $suite->addTestSuite('Zend_JsonTest');
         $suite->addTest(Zend_Json_AllTests::suite());
         $suite->addTest(Zend_Layout_AllTests::suite());

+ 0 - 64
tests/Zend/InfoCard/AllTests.php

@@ -1,64 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-if (!defined('PHPUnit_MAIN_METHOD')) {
-    define('PHPUnit_MAIN_METHOD', 'Zend_InfoCard_AllTests::main');
-}
-
-require_once 'Zend/InfoCard/XmlParsingTest.php';
-require_once 'Zend/InfoCard/ProcessTest.php';
-require_once 'Zend/InfoCard/AssertionTest.php';
-require_once 'Zend/InfoCard/CipherTest.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @group      Zend_InfoCard
- */
-class Zend_InfoCard_AllTests
-{
-    public static function main()
-    {
-        PHPUnit_TextUI_TestRunner::run(self::suite());
-    }
-
-    public static function suite()
-    {
-        $suite = new PHPUnit_Framework_TestSuite("Zend Framework - Zend_InfoCard");
-
-        if(extension_loaded('openssl')) {
-            $suite->addTestSuite('Zend_InfoCard_AssertionTest');
-            $suite->addTestSuite('Zend_InfoCard_ProcessTest');
-            $suite->addTestSuite('Zend_InfoCard_XmlParsingTest');
-            $suite->addTestSuite('Zend_InfoCard_CipherTest');
-        }
-
-        return $suite;
-    }
-}
-
-if (PHPUnit_MAIN_METHOD == 'Zend_InfoCard_AllTests::main') {
-    Zend_InfoCard_AllTests::main();
-}

+ 0 - 110
tests/Zend/InfoCard/AssertionTest.php

@@ -1,110 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-// Call Zend_InfoCard_AssertionTest::main() if this source file is executed directly.
-if (!defined("PHPUnit_MAIN_METHOD")) {
-    define("PHPUnit_MAIN_METHOD", "Zend_InfoCard_AssertionTest::main");
-}
-
-require_once 'Zend/InfoCard.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @group      Zend_InfoCard
- */
-class Zend_InfoCard_AssertionTest extends PHPUnit_Framework_TestCase
-{
-    protected $_xmlDocument;
-
-    /**
-     * Runs the test methods of this class.
-     *
-     * @access public
-     * @static
-     */
-    public static function main()
-    {
-
-        $suite  = new PHPUnit_Framework_TestSuite("Zend_InfoCard_AssertionTest");
-        $result = PHPUnit_TextUI_TestRunner::run($suite);
-    }
-
-    public function setUp()
-    {
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $this->markTestSkipped('SimpleXML implementation changed and CardSpace technology is discontinued');
-        }
-
-        $this->tokenDocument = dirname(__FILE__) . '/_files/signedToken.xml';
-        $this->sslPubKey     = dirname(__FILE__) . '/_files/ssl_pub.cert';
-        $this->sslPrvKey     = dirname(__FILE__) . '/_files/ssl_private.cert';
-        $this->loadXmlDocument();
-    }
-
-    public function loadXmlDocument()
-    {
-        $this->_xmlDocument = file_get_contents($this->tokenDocument);
-    }
-
-    public function testAssertionProcess()
-    {
-        date_default_timezone_set("America/Los_Angeles");
-
-        $assertions = Zend_InfoCard_Xml_Assertion::getInstance($this->_xmlDocument);
-
-        $this->assertTrue($assertions instanceof Zend_InfoCard_Xml_Assertion_Saml);
-        $this->assertSame(1, $assertions->getMajorVersion());
-        $this->assertSame(1, $assertions->getMinorVersion());
-        $this->assertSame("uuid:5cf2cd76-acf6-45ef-9059-a811801b80cc", $assertions->getAssertionID());
-        $this->assertSame("http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self", $assertions->getIssuer());
-        $this->assertSame(Zend_InfoCard_Xml_Assertion_Saml::CONFIRMATION_BEARER, $assertions->getConfirmationMethod());
-        $this->assertSame(1190153823, $assertions->getIssuedTimestamp());
-    }
-
-    public function testAssertionErrors()
-    {
-        try {
-            Zend_InfoCard_Xml_Assertion::getInstance(10);
-            $this->fail("Exception Not Thrown as Expected");
-        } catch(Exception $e) {
-            /* yay */
-        }
-
-        $doc = file_get_contents(dirname(__FILE__) . '/_files/signedToken_bad_type.xml');
-
-        try {
-            $assertions = Zend_InfoCard_Xml_Assertion::getInstance($doc);
-            $this->fail("Exception Not thrown as expected");
-        } catch(Exception $e) {
-            /* yay */
-        }
-    }
-}
-
-// Call Zend_InfoCard_AssertionTest::main() if this source file is executed directly.
-if (PHPUnit_MAIN_METHOD == "Zend_InfoCard_AssertionTest::main") {
-    Zend_InfoCard_AssertionTest::main();
-}

+ 0 - 116
tests/Zend/InfoCard/CipherTest.php

@@ -1,116 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-// Call Zend_InfoCard_ProcessTest::main() if this source file is executed directly.
-if (!defined("PHPUnit_MAIN_METHOD")) {
-    define("PHPUnit_MAIN_METHOD", "Zend_InfoCard_CipherTest::main");
-}
-
-require_once 'Zend/InfoCard.php';
-require_once 'Zend/InfoCard/Cipher/Pki/Adapter/Rsa.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @group      Zend_InfoCard
- */
-class Zend_InfoCard_CipherTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $this->markTestSkipped('SimpleXML implementation changed and CardSpace technology is discontinued');
-        }
-    }
-
-    public function testPkiPadding()
-    {
-        if (!extension_loaded('openssl')) {
-            $this->markTestSkipped('The openssl extension is not loaded.');
-        }
-
-        try {
-            $obj = new Zend_InfoCard_Cipher_Pki_Adapter_Rsa("thiswillbreak");
-            $this->fail("Exception not thrown as expected");
-        } catch(Exception $e) {
-            /* yay */
-        }
-
-        $obj = new Zend_InfoCard_Cipher_Pki_Adapter_Rsa();
-
-        $prv_key = file_get_Contents(dirname(__FILE__) . "/_files/ssl_private.cert");
-
-        try {
-            $obj->decrypt("Foo", $prv_key, null, "foo");
-            $this->fail("Expected Exception Not Thrown");
-        } catch(Exception $e) {
-            /* yay */
-        }
-
-        $result = $obj->decrypt("foo", $prv_key, null, Zend_InfoCard_Cipher_Pki_Adapter_Abstract::NO_PADDING);
-
-        // This is sort of werid, but since we don't have a real PK-encrypted string to test against for NO_PADDING
-        // mode we decrypt the string "foo" instead. Mathmatically we will always arrive at the same resultant
-        // string so if our hash doesn't match then something broke.
-        $this->assertSame(md5($result), "286c1991e1f7040229a6f223065b91b5");
-    }
-
-    public function testPKIDecryptBadKey()
-    {
-        if (!extension_loaded('openssl')) {
-            $this->markTestSkipped('The openssl extension is not loaded.');
-        }
-
-        $obj = new Zend_InfoCard_Cipher_Pki_Adapter_Rsa();
-
-        try {
-            $obj->decrypt("Foo", "bar");
-            $this->fail("Exception not thrown as expected");
-        } catch(Exception $e) {
-            /* yay */
-        }
-
-    }
-
-    public function testCipherFactory()
-    {
-        if (!defined('MCRYPT_RIJNDAEL_128')) {
-            $this->markTestSkipped('Use of the Zend_InfoCard component requires the mcrypt extension to be enabled in PHP');
-        }
-
-        $this->assertTrue(Zend_InfoCard_Cipher::getInstanceByURI(Zend_InfoCard_Cipher::ENC_AES128CBC)
-                          instanceof Zend_InfoCard_Cipher_Symmetric_Adapter_Aes128cbc);
-        $this->assertTrue(Zend_InfoCard_Cipher::getInstanceByURI(Zend_InfoCard_Cipher::ENC_RSA)
-                          instanceof Zend_InfoCard_Cipher_Pki_Adapter_Rsa);
-
-        try {
-            Zend_InfoCard_Cipher::getInstanceByURI("Broken");
-            $this->fail("Exception not thrown as expected");
-        } catch(Exception $e) {
-            /* yay */
-        }
-    }
-}

+ 0 - 324
tests/Zend/InfoCard/ProcessTest.php

@@ -1,324 +0,0 @@
-<?php
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id$
- */
-
-// Call Zend_InfoCard_ProcessTest::main() if this source file is executed directly.
-if (!defined("PHPUnit_MAIN_METHOD")) {
-    define("PHPUnit_MAIN_METHOD", "Zend_InfoCard_ProcessTest::main");
-}
-
-require_once 'Zend/InfoCard.php';
-require_once 'Zend/InfoCard/Adapter/Default.php';
-require_once 'Zend/InfoCard/Cipher/Symmetric/Adapter/Aes256cbc.php';
-
-/**
- * @category   Zend
- * @package    Zend_InfoCard
- * @subpackage UnitTests
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @group      Zend_InfoCard
- */
-class Zend_InfoCard_ProcessTest extends PHPUnit_Framework_TestCase
-{
-    protected $_xmlDocument;
-
-    /**
-     * Runs the test methods of this class.
-     *
-     * @access public
-     * @static
-     */
-    public static function main()
-    {
-
-        $suite  = new PHPUnit_Framework_TestSuite("Zend_InfoCard_ProcessTest");
-        $result = PHPUnit_TextUI_TestRunner::run($suite);
-    }
-
-    public function setUp()
-    {
-        if (version_compare(PHP_VERSION, '5.4', '>=')) {
-            $this->markTestSkipped('SimpleXML implementation changed and CardSpace technology is discontinued');
-        }
-
-        $this->tokenDocument = dirname(__FILE__) . '/_files/encryptedtoken.xml';
-        $this->sslPubKey     = dirname(__FILE__) . '/_files/ssl_pub.cert';
-        $this->sslPrvKey     = dirname(__FILE__) . '/_files/ssl_private.cert';
-        $this->loadXmlDocument();
-        $_SERVER['SERVER_NAME'] = "192.168.1.105";
-        $_SERVER['SERVER_PORT'] = 80;
-    }
-
-    public function loadXmlDocument()
-    {
-        $this->_xmlDocument = file_get_contents($this->tokenDocument);
-    }
-
-    public function testCertificatePairs()
-    {
-        try {
-            $infoCard = new Zend_InfoCard();
-        } catch (Zend_InfoCard_Exception $e) {
-            $message = $e->getMessage();
-            if (preg_match('/requires.+mcrypt/', $message)) {
-                $this->markTestSkipped($message);
-            } else {
-                throw $e;
-            }
-        }
-
-        $key_id = $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey);
-
-        $this->assertTrue((bool)$key_id);
-
-        $key_pair = $infoCard->getCertificatePair($key_id);
-
-        $this->assertTrue(!empty($key_pair['public']));
-        $this->assertTrue(!empty($key_pair['private']));
-        $this->assertTrue(!empty($key_pair['type_uri']));
-
-        $infoCard->removeCertificatePair($key_id);
-
-        $failed = false;
-
-        try {
-            $key_pair = $infoCard->getCertificatePair($key_id);
-        } catch(Zend_InfoCard_Exception $e) {
-            $failed = true;
-        }
-
-        $this->assertTrue($failed);
-
-        try {
-            $infoCard->addCertificatePair("I don't exist", "I don't exist");
-        } catch(Zend_InfoCard_Exception $e) {
-            $this->assertTrue(true);
-        } catch(Exception $e) {
-            $this->assertFalse(true);
-        }
-
-        $key_id = $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey, Zend_InfoCard_Cipher::ENC_RSA_OAEP_MGF1P, "foo");
-
-        try {
-            $key_id = $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey, Zend_InfoCard_Cipher::ENC_RSA_OAEP_MGF1P, "foo");
-        } catch(Zend_InfoCard_Exception $e) {
-            $this->assertTrue(true);
-        } catch(Exception $e) {
-            $this->assertFalse(true);
-        }
-
-        $this->assertTrue(!empty($key_id));
-
-        try {
-            $infoCard->removeCertificatePair($key_id);
-            $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey, "Doesn't Exist", "foo");
-        } catch(Zend_InfoCard_Exception $e) {
-            $this->assertTrue(true);
-        } catch(Exception $e) {
-            $this->assertFalse(true);
-        }
-    }
-
-    public function testStandAloneProcess()
-    {
-        if (version_compare(PHP_VERSION, '5.2.0', '<')) {
-            $this->markTestSkipped('DOMDocument::C14N() not available until PHP 5.2.0');
-        }
-
-        try {
-            $infoCard = new Zend_InfoCard();
-        } catch (Zend_InfoCard_Exception $e) {
-            $message = $e->getMessage();
-            if (preg_match('/requires.+mcrypt/', $message)) {
-                $this->markTestSkipped($message);
-            } else {
-                throw $e;
-            }
-        }
-
-        $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey);
-
-        $claims = $infoCard->process($this->_xmlDocument);
-
-        $this->assertTrue($claims instanceof Zend_InfoCard_Claims);
-    }
-
-    public function testPlugins()
-    {
-        if (version_compare(PHP_VERSION, '5.2.0', '<')) {
-            $this->markTestSkipped('DOMDocument::C14N() not available until PHP 5.2.0');
-        }
-
-        $adapter  = new _Zend_InfoCard_Test_Adapter();
-
-        try {
-            $infoCard = new Zend_InfoCard();
-        } catch (Zend_InfoCard_Exception $e) {
-            $message = $e->getMessage();
-            if (preg_match('/requires.+mcrypt/', $message)) {
-                $this->markTestSkipped($message);
-            } else {
-                throw $e;
-            }
-        }
-
-        $infoCard->setAdapter($adapter);
-
-        $result = $infoCard->getAdapter() instanceof Zend_InfoCard_Adapter_Interface;
-
-        $this->assertTrue($result);
-        $this->assertTrue($infoCard->getAdapter() instanceof _Zend_InfoCard_Test_Adapter);
-
-        $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey);
-
-        $claims = $infoCard->process($this->_xmlDocument);
-
-        $pki_object = new Zend_InfoCard_Cipher_Pki_Adapter_Rsa(Zend_InfoCard_Cipher_Pki_Adapter_Abstract::NO_PADDING);
-
-        $infoCard->setPkiCipherObject($pki_object);
-
-        $this->assertTrue($pki_object === $infoCard->getPkiCipherObject());
-
-        $sym_object = new Zend_InfoCard_Cipher_Symmetric_Adapter_Aes256cbc();
-
-        $infoCard->setSymCipherObject($sym_object);
-
-        $this->assertTrue($sym_object === $infoCard->getSymCipherObject());
-    }
-
-    public function testClaims()
-    {
-        if (version_compare(PHP_VERSION, '5.2.0', '<')) {
-            $this->markTestSkipped('DOMDocument::C14N() not available until PHP 5.2.0');
-        }
-
-        try {
-            $infoCard = new Zend_InfoCard();
-        } catch (Zend_InfoCard_Exception $e) {
-            $message = $e->getMessage();
-            if (preg_match('/requires.+mcrypt/', $message)) {
-                $this->markTestSkipped($message);
-            } else {
-                throw $e;
-            }
-        }
-
-        $infoCard->addCertificatePair($this->sslPrvKey, $this->sslPubKey);
-
-        $claims = $infoCard->process($this->_xmlDocument);
-
-        $this->assertTrue($claims instanceof Zend_InfoCard_Claims);
-
-        $this->assertFalse($claims->isValid());
-
-        $this->assertSame($claims->getCode(), Zend_InfoCard_Claims::RESULT_VALIDATION_FAILURE);
-
-        $errormsg = $claims->getErrorMsg();
-        $this->assertTrue(!empty($errormsg));
-
-
-        @$claims->forceValid();
-
-        $this->assertTrue($claims->isValid());
-
-        $this->assertSame($claims->emailaddress, "john@zend.com");
-        $this->assertSame($claims->givenname, "John");
-        $this->assertSame($claims->surname, "Coggeshall");
-        $this->assertSame($claims->getCardID(), "rW1/y9BuncoBK4WSipF2hHYParxxgMHk6ANBrhz1Zr4=");
-        $this->assertSame($claims->getClaim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"), "john@zend.com");
-        $this->assertSame($claims->getDefaultNamespace(), "http://schemas.xmlsoap.org/ws/2005/05/identity/claims");
-
-        try {
-            unset($claims->givenname);
-        } catch(Zend_InfoCard_Exception $e) {
-
-        } catch(Exception $e) {
-            $this->assertFalse(true);
-        }
-
-
-        try {
-            $claims->givenname = "Test";
-        } catch(Zend_InfoCard_Exception $e) {
-
-        } catch(Exception $e) {
-            $this->assertFalse(true);
-        }
-
-        $this->assertTrue(isset($claims->givenname));
-    }
-
-    public function testDefaultAdapter()
-    {
-        $adapter = new Zend_InfoCard_Adapter_Default();
-
-        $this->assertTrue($adapter->storeAssertion(1, 2, array(3)));
-        $this->assertFalse($adapter->retrieveAssertion(1, 2));
-        $this->assertTrue(is_null($adapter->removeAssertion(1, 2)));
-    }
-
-    public function testTransforms()
-    {
-        $trans = new Zend_InfoCard_Xml_Security_Transform();
-
-        try {
-            $trans->addTransform("foo");
-            $this->fail("Expected Exception Not Thrown");
-        } catch(Exception $e) {
-            /* yay */
-        }
-
-        $this->assertTrue(is_array($trans->getTransformList()));
-
-    }
-}
-
-class _Zend_InfoCard_Test_Adapter
-    extends PHPUnit_Framework_TestCase
-    implements Zend_InfoCard_Adapter_Interface
-{
-    public function storeAssertion($assertionURI, $assertionID, $conditions)
-    {
-        $this->assertTrue(!empty($assertionURI));
-        $this->assertTrue(!empty($assertionID));
-        $this->assertTrue(!empty($conditions));
-        return true;
-    }
-
-    public function retrieveAssertion($assertionURI, $assertionID)
-    {
-        $this->assertTrue(!empty($assertionURI));
-        $this->assertTrue(!empty($assertionID));
-        return false;
-    }
-
-    public function removeAssertion($asserionURI, $assertionID)
-    {
-        $this->assertTrue(!empty($assertionURI));
-        $this->asserTrue(!empty($assertionID));
-    }
-}
-
-// Call Zend_InfoCard_ProcessTest::main() if this source file is executed directly.
-if (PHPUnit_MAIN_METHOD == "Zend_InfoCard_ProcessTest::main") {
-    Zend_InfoCard_ProcessTest::main();
-}

Разница между файлами не показана из-за своего большого размера
+ 0 - 96
tests/Zend/InfoCard/XmlParsingTest.php


+ 0 - 15
tests/Zend/InfoCard/_files/encryptedkey.xml

@@ -1,15 +0,0 @@
-<e:BadEncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
-                        <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
-                                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
-                        </e:EncryptionMethod>
-                        <KeyInfo>
-                                <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
-                                        <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1"
-                                                                         EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">/OCqQ7Np25sOiA+4OsFh1R6qIeY=</o:KeyIdentifier>
-                                </o:SecurityTokenReference>
-                        </KeyInfo>
-                        <e:CipherData>
-                                <e:CipherValue>AIgtBEv9lGMikyHjV/b5mQ5LbLyupNtRH8hl5I6tJsZI5CYP32BLo9FgxAY5ZReEv+XZbqcs5KORBvTbMkP6l7MY32WJGPBDDMSB7k6DshryoZqlmGMbjt2g1nM7xOuwwfru1jC7t+qCBXL4PPBpHDhHzAW7u8tB8LQCU6GklIFa1+GoZbQ00BY/OoPbE3rxhxgGPAHXfYPLjGALIkYo9czeTO/zfcydHl5Xcyp/PsskSOUhNFcftxG+fQELb/oqc50ldBWlxBM/qU7fLI4KRfUag3J5sanCUsgiYdF0iQNfiYnUKLa9ThDHjHUQnB5EEt77cM2/DKQkyExMBBgYcRo9GzqyLXiDCYWVatCQU6rAD8NkBBpFs8W/0QXIV1J/S3DuZS3Eo4x27gRlT5YfUeO7jAZvwqy51WHNXwq13QTV2AOGfvpK3054sZm+10jdfAq6tgYdShQgO2kHRGP1q9vAC3SfD49mP9q+AemJrAkiR2HZTxkEQ+AttdfPhc2dzdLXp+ukQdqpL/xlywIp+KIim+YVjhO+Bi92rRn5Kl0h7q6MkpoTGI1F+akmNhD6VmB1Nd0G6e4AGTisuyd+vygEH7fsZhZuiMSknajfgPgazKiLUihwRvfk4FJm18Ju97tXcl6LhIJpkOcq7sI25GhWz0mHX1ErOf/949pcozo=</e:CipherValue>
-                        </e:CipherData>
-                </e:EncryptedKey>
-

+ 0 - 15
tests/Zend/InfoCard/_files/encryptedkey_bad_block.xml

@@ -1,15 +0,0 @@
-<e:BadEncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
-                        <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
-                                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
-                        </e:EncryptionMethod>
-                        <KeyInfo>
-                                <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
-                                        <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1"
-                                                                         EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">/OCqQ7Np25sOiA+4OsFh1R6qIeY=</o:KeyIdentifier>
-                                </o:SecurityTokenReference>
-                        </KeyInfo>
-                        <e:CipherData>
-                                <e:CipherValue>AIgtBEv9lGMikyHjV/b5mQ5LbLyupNtRH8hl5I6tJsZI5CYP32BLo9FgxAY5ZReEv+XZbqcs5KORBvTbMkP6l7MY32WJGPBDDMSB7k6DshryoZqlmGMbjt2g1nM7xOuwwfru1jC7t+qCBXL4PPBpHDhHzAW7u8tB8LQCU6GklIFa1+GoZbQ00BY/OoPbE3rxhxgGPAHXfYPLjGALIkYo9czeTO/zfcydHl5Xcyp/PsskSOUhNFcftxG+fQELb/oqc50ldBWlxBM/qU7fLI4KRfUag3J5sanCUsgiYdF0iQNfiYnUKLa9ThDHjHUQnB5EEt77cM2/DKQkyExMBBgYcRo9GzqyLXiDCYWVatCQU6rAD8NkBBpFs8W/0QXIV1J/S3DuZS3Eo4x27gRlT5YfUeO7jAZvwqy51WHNXwq13QTV2AOGfvpK3054sZm+10jdfAq6tgYdShQgO2kHRGP1q9vAC3SfD49mP9q+AemJrAkiR2HZTxkEQ+AttdfPhc2dzdLXp+ukQdqpL/xlywIp+KIim+YVjhO+Bi92rRn5Kl0h7q6MkpoTGI1F+akmNhD6VmB1Nd0G6e4AGTisuyd+vygEH7fsZhZuiMSknajfgPgazKiLUihwRvfk4FJm18Ju97tXcl6LhIJpkOcq7sI25GhWz0mHX1ErOf/949pcozo=</e:CipherValue>
-                        </e:CipherData>
-                </e:BadEncryptedKey>
-

+ 0 - 15
tests/Zend/InfoCard/_files/encryptedkey_missing_enc_algo.xml

@@ -1,15 +0,0 @@
-<e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
-                        <e:EncryptionMethod >
-                                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
-                        </e:EncryptionMethod>
-                        <KeyInfo>
-                                <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
-                                        <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1"
-                                                                         EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">/OCqQ7Np25sOiA+4OsFh1R6qIeY=</o:KeyIdentifier>
-                                </o:SecurityTokenReference>
-                        </KeyInfo>
-                        <e:CipherData>
-                                <e:CipherValue>AIgtBEv9lGMikyHjV/b5mQ5LbLyupNtRH8hl5I6tJsZI5CYP32BLo9FgxAY5ZReEv+XZbqcs5KORBvTbMkP6l7MY32WJGPBDDMSB7k6DshryoZqlmGMbjt2g1nM7xOuwwfru1jC7t+qCBXL4PPBpHDhHzAW7u8tB8LQCU6GklIFa1+GoZbQ00BY/OoPbE3rxhxgGPAHXfYPLjGALIkYo9czeTO/zfcydHl5Xcyp/PsskSOUhNFcftxG+fQELb/oqc50ldBWlxBM/qU7fLI4KRfUag3J5sanCUsgiYdF0iQNfiYnUKLa9ThDHjHUQnB5EEt77cM2/DKQkyExMBBgYcRo9GzqyLXiDCYWVatCQU6rAD8NkBBpFs8W/0QXIV1J/S3DuZS3Eo4x27gRlT5YfUeO7jAZvwqy51WHNXwq13QTV2AOGfvpK3054sZm+10jdfAq6tgYdShQgO2kHRGP1q9vAC3SfD49mP9q+AemJrAkiR2HZTxkEQ+AttdfPhc2dzdLXp+ukQdqpL/xlywIp+KIim+YVjhO+Bi92rRn5Kl0h7q6MkpoTGI1F+akmNhD6VmB1Nd0G6e4AGTisuyd+vygEH7fsZhZuiMSknajfgPgazKiLUihwRvfk4FJm18Ju97tXcl6LhIJpkOcq7sI25GhWz0mHX1ErOf/949pcozo=</e:CipherValue>
-                        </e:CipherData>
-                </e:EncryptedKey>
-

+ 0 - 12
tests/Zend/InfoCard/_files/encryptedkey_missing_encryptionmethod.xml

@@ -1,12 +0,0 @@
-<e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
-                        <KeyInfo>
-                                <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
-                                        <o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1"
-                                                                         EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">/OCqQ7Np25sOiA+4OsFh1R6qIeY=</o:KeyIdentifier>
-                                </o:SecurityTokenReference>
-                        </KeyInfo>
-                        <e:CipherData>
-                                <e:CipherValue>AIgtBEv9lGMikyHjV/b5mQ5LbLyupNtRH8hl5I6tJsZI5CYP32BLo9FgxAY5ZReEv+XZbqcs5KORBvTbMkP6l7MY32WJGPBDDMSB7k6DshryoZqlmGMbjt2g1nM7xOuwwfru1jC7t+qCBXL4PPBpHDhHzAW7u8tB8LQCU6GklIFa1+GoZbQ00BY/OoPbE3rxhxgGPAHXfYPLjGALIkYo9czeTO/zfcydHl5Xcyp/PsskSOUhNFcftxG+fQELb/oqc50ldBWlxBM/qU7fLI4KRfUag3J5sanCUsgiYdF0iQNfiYnUKLa9ThDHjHUQnB5EEt77cM2/DKQkyExMBBgYcRo9GzqyLXiDCYWVatCQU6rAD8NkBBpFs8W/0QXIV1J/S3DuZS3Eo4x27gRlT5YfUeO7jAZvwqy51WHNXwq13QTV2AOGfvpK3054sZm+10jdfAq6tgYdShQgO2kHRGP1q9vAC3SfD49mP9q+AemJrAkiR2HZTxkEQ+AttdfPhc2dzdLXp+ukQdqpL/xlywIp+KIim+YVjhO+Bi92rRn5Kl0h7q6MkpoTGI1F+akmNhD6VmB1Nd0G6e4AGTisuyd+vygEH7fsZhZuiMSknajfgPgazKiLUihwRvfk4FJm18Ju97tXcl6LhIJpkOcq7sI25GhWz0mHX1ErOf/949pcozo=</e:CipherValue>
-                        </e:CipherData>
-                </e:EncryptedKey>
-

Разница между файлами не показана из-за своего большого размера
+ 0 - 22
tests/Zend/InfoCard/_files/encryptedtoken.xml


Разница между файлами не показана из-за своего большого размера
+ 0 - 22
tests/Zend/InfoCard/_files/encryptedtoken2.xml


Разница между файлами не показана из-за своего большого размера
+ 0 - 22
tests/Zend/InfoCard/_files/encryptedtoken_bad_type.xml


+ 0 - 5
tests/Zend/InfoCard/_files/security_token_bad_keyref.xml

@@ -1,5 +0,0 @@
-				<o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
-					<o:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1" 
-									 EncodingType="foo">/OCqQ7Np25sOiA+4OsFh1R6qIeY=</o:KeyIdentifier>
-				</o:SecurityTokenReference>
-

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
tests/Zend/InfoCard/_files/signedToken.xml


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
tests/Zend/InfoCard/_files/signedToken_bad_type.xml


+ 0 - 51
tests/Zend/InfoCard/_files/ssl_private.cert

@@ -1,51 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIJKAIBAAKCAgEAtmCinv4c2Y5oh7go62or4lQMJiM/oBJnRiA+7zqcvsbl4AYJ
-Ke3dEBz19i2kIL56GezMzeCyC89GsLQ1+0W8L2Ysyr1TyH8ZqVMjtL63utxkDXKE
-0NniQttijgkqfK7D4yH8TMiTu0WVoa1OU8vrSDe8KLF11pHEVWjb41MlJvK2eDea
-kbb96hU3Xcvfuuthd49TNZ45EbqgEuUMpJIpd9GnRPV+46jTbKHR6hkw/udm8X2g
-6nJ+5Nb3Ju7d972YsMnpO9jJ/0l/JYUXCOAEeJEGAaPLv+LsFlatP9FzJ5fXx5H6
-uf/u8ipHo5zVr6/1eI3I9BvEz/5wqxIRe6RvlN5DWdVvmBNnPur4rb5j8/7TVLaR
-7nMO1VSK3/roMXAGxwvcFV7/amHxWvHbDIw0AuBBfrjW92PKjrpIyER3scFzSNbd
-S3tdyylMsRahFEp1qjkcv6QlZWPZJzqdKZMb7TOI/lP+VWh/BkfCt9xo3bWOm1/u
-pKNANXeQl5AyQqzJ/xZdpZLDY3yG0+8e6YdBR+6gNnlYTcumZlYSHGPxTsXWW8Hn
-SsinMFxabH4uqXbVOQE0wY+xE7Q2ip6+RzovAsSTkSv2b5QinxOw4mSO3GdtlP8d
-MnS8uL/MNHN4/Zl41kbx96kct7QRPWN6S2crRqag+7kyDEDiKh2DoQr5bKkCAwEA
-AQKCAgBeo1a/2m1uF4/2nYHeZ4HOOH71a2Ug02vz39fInEmqVdwDnB41O9FzAxQ/
-Yv/AXhdOTKsaSncZ2b19BIbelRlKH2Mu8YAAkrPmQdZNfIoq1SK2N67kEaxvtRg3
-TFpXyPitbH1X+t1uWHWFKEF1CmRVXVauZygW6B1RlNBF7mdhBqHZUEFNTAAG8GuC
-qMC4Zlx1hlJPiINkx8s5AtLEs3QBUTHTfvERghH0VSRwrhHWtI2e0uolvrRKW6J0
-+Y8Fd8U8OApnm992MdVgyudhG542UksjnrOkJ0ULcn8EltOCwDCgxwesbTq5P2dd
-Z40bVduzax/UTHSc2hPtMbsQxgt/+7l6iIJ2CPuSRQORQQJf9Ar8b7qLf6aXK11O
-KO56gl4DcPlo5n19BdqkSMZ6zeJaJAe0UEhag4wkE1mpgPFVmm5av40zNQ1XnCJN
-D8RaA7tZHiXCkRXtmcInSzEIOJDEpBx53eCiOTci+TxBvX4BUo03r6hPdA8pxgRj
-PXKd+w5Mz/mj5UJHsf8OtCqBPaM+oRm8xLRSRRzwIx02QacUNO957y5weUtdscPE
-Y1+CRhxSEut8mjsn6vuuujM2w+v/sXHDqbB1QHDPbsbAXWX5d+1BuTu87tUsz24q
-/bjnIAk9qjW/XdfSmmcMIWi8AHgumVtItn8AcWHBnag+qyqtYQKCAQEA6kvGBAOr
-Q46rhIz70tjlFZXNdNFm62xqJwmYBzlOuHVzYtwnH1W471NZizkMh9Uvuhtsn9UM
-0nC7adsWqe6GHk0YoeR93HpEwI08smWWdGV0SYIMJPOQPQ9z8QjlzWBdGJwZKuXb
-VVqpvYH6FVJYTQIyb1tZ7kbMXkJZkabpCKOiT/7WSw9dN7Spbc8DuyJ68EIlJImD
-1z/j4UVjVfigs/6oUo83Uam623YETl1+DKF2lPVUBELwh6B3jdR+ujANGLGZ5NXB
-1jqvzZrbC1uMj5JPUcNDwjj7SDwQJ+7gSsq96pZ/dLYfT5o0Z5p+BvuYjarkoQuN
-QFfKC+gu19eeYwKCAQEAx0WjGWiQSUzHL5NVYtBdkmEdjF+rZ7OXL0cn/NywH/y3
-se+oJuySh3TMUgQxmz7oTH7k7pOhXqeiTEpOs3ItS47QSlnMdaIW/S215YQ5qk1r
-R9YxuqESKGpsL65+1likAGtvWazcZuY98eY04cSRsHanO165uMdSqFg6uoK2daB9
-6NQXX4EZsCT2/eaHuxqscQaVG1k+tnBYqZLHovqAsWadOTPTVNDXvuiyU1F1Uveo
-SudT98UUnVpxU/wktHzqP6eDU4CPBbREEXdpqIYvR4QeqkyTvnuVNGTigRtkPaJ9
-YsZ4epCBfd2pteu+2na/fWVc/2bR++MO9JEONP0ggwKCAQBuOoIJx3Qez5OQRAgB
-9bspgZXs3MvP/OygOxpEY8jObauAmlTpoBnmts8M+iUUDs9qfpaHR+PFafYyYjny
-bt64iMsK94XjYb7Q3GHvCG5VipnAL6fpBpIYuBlzEB2Vlz2VY3NPxF6BdKshFnKC
-73/NkzgJPfA8cyCZRBwBs4Y1Y07s1dcZ7zuLBrsjh16Y/yrZuDTjULMvZMagaFXI
-z7VDmY61cN201Oatc4OpHsE7zgcNI7KIYrnpBSzaFFwe2pZ+xKfDinGsiWXGlJFz
-cXna3hnlPLm3Obm3DVMIhpENfv8EzBNg5IIsoD8BcyTRwjLOi9UOk3G8ENFk8rJ/
-J9lDAoIBAB68AtfcZMSpbt9LnhPLh2MYT3JjHxCzhlHoa6Z4c0G7vKlZCVpXipIR
-1aGgu/Xx0epad/zEEFOFD2cs3s6WgZ3xvPZ6uyo5gcoyzqdDqZE2t6EwzCK4zRAm
-ueDwzOdKbKET8Oyn2KaWRF+W3fkkVEQfSNPDXGm/dGQ6l3REzNd/lWvfqms0gj3E
-tcObVrvo9UfJeB3rudxxn3soBFqCwG6cIQu9jo66V0w+n6JyIeJWCELlQvIoF3Hd
-jTUi4pZj3c1LjNnILkb28riu7kDr0Ub6fbBOd0sdzHl0Resbym4nLaeabOKafx5m
-ndJNNfaD8izpAVrzBNgQwTG/Xa2WjPkCggEBAIhTAdNmTNHpTymb3OksR81YNRIo
-+0Y2AMLXbYnOV0hshWlaiTtffPFUVrhbm+w6nCPimPknVCqjHvIvFyNQpqSOs5YX
-NwNmDtBiOQBcgmQ4Zd3K/JtvbXc6g1cHaa4ESP6X3d0VfH/y5RGHuo1rAlzvejfS
-i8mbstDw3lntc/7PACzbWzRKg4Hyc6m/08vhCG0HXgar9/neZP85Ur9YLgakcqDu
-AFcSPi9trTJVv3Wq6tEbyv1coORJA+CnCOhztMpM83DvEhqGjOtHeXRyC8EPJ2kj
-AlaoCXXh/ymc+I7SlXonCh9VwaDAErPWvIj5y6wJPKq4JHnIVzVAJ6iKAzY=
------END RSA PRIVATE KEY-----

+ 0 - 33
tests/Zend/InfoCard/_files/ssl_pub.cert

@@ -1,33 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFxDCCA6wCAQEwDQYJKoZIhvcNAQEFBQAwgaQxCzAJBgNVBAYTAlVTMREwDwYD
-VQQIEwhOZXcgWW9yazEQMA4GA1UEBxMHQnVmZmFsbzEaMBgGA1UEChMRWmVuZCBU
-ZWNobm9sb2dpZXMxHjAcBgNVBAsTFVByb2Zlc3Npb25hbCBTZXJ2aWNlczEWMBQG
-A1UEAxMNMTkyLjE2OC4xLjEwNTEcMBoGCSqGSIb3DQEJARYNam9obkB6ZW5kLmNv
-bTAeFw0wNzA5MTgxNjQyNTdaFw0wODA5MTcxNjQyNTdaMIGqMQswCQYDVQQGEwJV
-UzERMA8GA1UECBMITmV3IFlvcmsxEDAOBgNVBAcTB0J1ZmZhbG8xIDAeBgNVBAoT
-F1plbmQgVGVjaG5vbG9naWVzLCBJbmMuMR4wHAYDVQQLExVQcm9mZXNzaW9uYWwg
-U2VydmljZXMxFjAUBgNVBAMTDTE5Mi4xNjguMS4xMDUxHDAaBgkqhkiG9w0BCQEW
-DWpvaG5AemVuZC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2
-YKKe/hzZjmiHuCjraiviVAwmIz+gEmdGID7vOpy+xuXgBgkp7d0QHPX2LaQgvnoZ
-7MzN4LILz0awtDX7RbwvZizKvVPIfxmpUyO0vre63GQNcoTQ2eJC22KOCSp8rsPj
-IfxMyJO7RZWhrU5Ty+tIN7wosXXWkcRVaNvjUyUm8rZ4N5qRtv3qFTddy9+662F3
-j1M1njkRuqAS5Qykkil30adE9X7jqNNsodHqGTD+52bxfaDqcn7k1vcm7t33vZiw
-yek72Mn/SX8lhRcI4AR4kQYBo8u/4uwWVq0/0XMnl9fHkfq5/+7yKkejnNWvr/V4
-jcj0G8TP/nCrEhF7pG+U3kNZ1W+YE2c+6vitvmPz/tNUtpHucw7VVIrf+ugxcAbH
-C9wVXv9qYfFa8dsMjDQC4EF+uNb3Y8qOukjIRHexwXNI1t1Le13LKUyxFqEUSnWq
-ORy/pCVlY9knOp0pkxvtM4j+U/5VaH8GR8K33GjdtY6bX+6ko0A1d5CXkDJCrMn/
-Fl2lksNjfIbT7x7ph0FH7qA2eVhNy6ZmVhIcY/FOxdZbwedKyKcwXFpsfi6pdtU5
-ATTBj7ETtDaKnr5HOi8CxJORK/ZvlCKfE7DiZI7cZ22U/x0ydLy4v8w0c3j9mXjW
-RvH3qRy3tBE9Y3pLZytGpqD7uTIMQOIqHYOhCvlsqQIDAQABMA0GCSqGSIb3DQEB
-BQUAA4ICAQCiBzdsthUHuCv5ec8r/yH93l3fRkoIEh1ZZAycnLjTC5rKZvRlWAXu
-VKs7ViauRSt4dth6MTGmCZO6Lv3uO4G/YmvwcANYVOl0z7DoC0QCccmRtGcGHWt/
-jciQgqvoUe+d5JHQeU9AtclLXSIIbQr9FtlBYdaPHjq+6AXtKgy+Gzo8lQITcqh9
-OBODgIvt6O/rILg26G4Ud/X1aJbfD3xCrwNMs0FQMnnl9mFyNO3ZZPtbGcuaVQTJ
-w3immpFZQloqh6W5/+0OBAXmdz/LQITomUjajTBsoEJIgT6qTIniPLb2oxgw4dcM
-p3ECXNc7S6xO41ky1jsN9NDCeY8OL3zaXjN0cdUVfWTCbUeVQ9K4cq6NeUCNko21
-pa+N6vsZYXUBNqvvDWwGqstZIwnE0awZ9UX6hfK+AqdNWIoBTcclmTQCgS3JWuXP
-p1u8N5wTyAsxiEmJhMPOZSgj1i+OgPrh3zaAc84WtXk6BKVsMK1Yo0lu55tVrMI0
-sa00deH3HTxrtVWKmwfmfwZEjMmwd8YJEhmYcOr5hgB9/cS0b3svSJnQCifrYNg0
-PmTZprqmalzFdTmsFeogCx79f9yDEmFrw3/UZFeF/+4GHMbBzTHPYvwdKZFPXHma
-EHOj/mkX+lt19SkiPzg9rDNaCF2SyvBH1lQWCRNn1yPivpWdcxIF9A==
------END CERTIFICATE-----

Некоторые файлы не были показаны из-за большого количества измененных файлов