Revision: 2285
Author: olavmrk
Date: Fri May  7 02:13:56 2010
Log: Utilities::loadPublicKey: Use configuration class for metadata.
http://code.google.com/p/simplesamlphp/source/detail?r=2285

Modified:
 /trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php
 /trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php
 /trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php
 /trunk/lib/SimpleSAML/Utilities.php
 /trunk/modules/saml/www/sp/metadata.php
 /trunk/modules/saml2/lib/Message.php
 /trunk/www/saml2/idp/metadata.php
 /trunk/www/saml2/sp/metadata.php
 /trunk/www/shib13/idp/metadata.php
 /trunk/www/shib13/sp/metadata.php

=======================================
--- /trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php Fri Mar 26 03:14:37 2010 +++ /trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php Fri May 7 02:13:56 2010
@@ -125,7 +125,7 @@
$url = $idpMetadata->getDefaultEndpoint('ArtifactResolutionService', array('urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding'));
                $url = $url['Location'];

- $certData = SimpleSAML_Utilities::loadPublicKey($idpMetadata->toArray(), TRUE);
+               $certData = SimpleSAML_Utilities::loadPublicKey($idpMetadata, 
TRUE);
                if (!array_key_exists('PEM', $certData)) {
throw new SimpleSAML_Error_Exception('Missing one of certData or certificate in metadata for '
                                . 
var_export($idpMetadata->getString('entityid'), TRUE));
=======================================
--- /trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php Fri May 7 02:13:28 2010 +++ /trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php Fri May 7 02:13:56 2010
@@ -31,7 +31,7 @@
                SimpleSAML_Utilities::validateXMLDocument($response, 'saml11');

$privatekey = SimpleSAML_Utilities::loadPrivateKey($idpmd->toArray(), TRUE); - $publickey = SimpleSAML_Utilities::loadPublicKey($idpmd->toArray(), TRUE);
+               $publickey = SimpleSAML_Utilities::loadPublicKey($idpmd, TRUE);

                $responsedom = new DOMDocument();
                $responsedom->loadXML(str_replace ("\r", "", $response));
=======================================
--- /trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php      Wed Apr 21 05:56:33 2010
+++ /trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php      Fri May  7 02:13:56 2010
@@ -596,7 +596,7 @@
         */
private function addCertificate(SAML2_XML_md_RoleDescriptor $rd, SimpleSAML_Configuration $metadata) {

-               $certInfo = 
SimpleSAML_Utilities::loadPublicKey($metadata->toArray());
+               $certInfo = SimpleSAML_Utilities::loadPublicKey($metadata);
                if ($certInfo === NULL || !array_key_exists('certData', 
$certInfo)) {
                        /* No certificate to add. */
                        return;
=======================================
--- /trunk/lib/SimpleSAML/Utilities.php Fri Apr 23 01:13:16 2010
+++ /trunk/lib/SimpleSAML/Utilities.php Fri May  7 02:13:56 2010
@@ -1507,7 +1507,7 @@
* 'certFingerprint' Array of valid certificate fingerprints. (Only present
         *                    if this is a certificate.)
         *
-        * @param array $metadata  The metadata array.
+        * @param SimpleSAML_Configuration $metadata  The metadata.
* @param bool $required Whether the private key is required. If this is TRUE, a * missing key will cause an exception. Default is FALSE. * @param string $prefix The prefix which should be used when reading from the metadata
@@ -1515,16 +1515,15 @@
* @return array|NULL Public key or certificate data, or NULL if no public key or
         *                     certificate was found.
         */
- public static function loadPublicKey($metadata, $required = FALSE, $prefix = '') {
-               assert('is_array($metadata)');
+ public static function loadPublicKey(SimpleSAML_Configuration $metadata, $required = FALSE, $prefix = '') {
                assert('is_bool($required)');
                assert('is_string($prefix)');

                $ret = array();

-               if (array_key_exists($prefix . 'certData', $metadata)) {
+               if ($metadata->hasValue($prefix . 'certData')) {
                        /* Full certificate data available from metadata. */
-                       $certData = $metadata[$prefix . 'certData'];
+                       $certData = $metadata->getString($prefix . 'certData');
                        $certData = str_replace(array("\r", "\n", "\t", ' '), 
'', $certData);
                        $ret['certData'] = $certData;

@@ -1533,9 +1532,9 @@
                                chunk_split($ret['certData'], 64) .
                                "-----END CERTIFICATE-----\n";

-               } elseif (array_key_exists($prefix . 'certificate', $metadata)) 
{
+               } elseif ($metadata->hasValue($prefix . 'certificate')) {
                        /* Reference to certificate file. */
- $file = SimpleSAML_Utilities::resolveCert($metadata[$prefix . 'certificate']); + $file = SimpleSAML_Utilities::resolveCert($metadata->getString($prefix . 'certificate'));
                        $data = @file_get_contents($file);
                        if ($data === FALSE) {
throw new Exception('Unable to load certificate/public key from file "' . $file . '"');
@@ -1549,13 +1548,9 @@
                                $ret['certData'] = str_replace(array("\r", 
"\n"), '', $matches[1]);
                        }

-               } elseif (array_key_exists($prefix . 'certFingerprint', 
$metadata)) {
+               } elseif ($metadata->hasValue($prefix . 'certFingerprint')) {
                        /* We only have a fingerprint available. */
-                       $fps = $metadata[$prefix . 'certFingerprint'];
-
-                       if (!is_array($fps)) {
-                               $fps = array($fps);
-                       }
+                       $fps = $metadata->getArrayizeString($prefix . 
'certFingerprint');

                        /* Normalize fingerprint(s) - lowercase and no colons. 
*/
                        foreach($fps as &$fp) {
=======================================
--- /trunk/modules/saml/www/sp/metadata.php     Mon Feb  8 01:13:18 2010
+++ /trunk/modules/saml/www/sp/metadata.php     Fri May  7 02:13:56 2010
@@ -64,7 +64,7 @@
        );
 }

-$certInfo = SimpleSAML_Utilities::loadPublicKey($spconfig->toArray());
+$certInfo = SimpleSAML_Utilities::loadPublicKey($spconfig);
 if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
        $certData = $certInfo['certData'];
        $metaArray11['certData'] = $certData;
=======================================
--- /trunk/modules/saml2/lib/Message.php        Fri Mar 26 03:14:48 2010
+++ /trunk/modules/saml2/lib/Message.php        Fri May  7 02:13:56 2010
@@ -39,9 +39,7 @@
         */
public static function addSign(SimpleSAML_Configuration $srcMetadata, SimpleSAML_Configuration $dstMetadata, SAML2_SignedElement $element) {

-               $srcMetadata = $srcMetadata->toArray();
-
-               $keyArray = SimpleSAML_Utilities::loadPrivateKey($srcMetadata, 
TRUE);
+ $keyArray = SimpleSAML_Utilities::loadPrivateKey($srcMetadata->toArray(), TRUE);
                $certArray = SimpleSAML_Utilities::loadPublicKey($srcMetadata, 
FALSE);

$privateKey = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array('type' => 'private'));
@@ -133,7 +131,7 @@
SimpleSAML_Logger::debug('Found ' . count($certificates) . ' certificates in ' . get_class($element));

                /* Find the certificate that should verify signatures by this 
entity. */
- $certArray = SimpleSAML_Utilities::loadPublicKey($srcMetadata->toArray(), FALSE);
+               $certArray = SimpleSAML_Utilities::loadPublicKey($srcMetadata, 
FALSE);
                if ($certArray !== NULL) {
                        if (array_key_exists('PEM', $certArray)) {
                                $pemCert = $certArray['PEM'];
@@ -284,7 +282,7 @@
                        $key->loadKey($sharedKey);
                } else {
/* Find the certificate that we should use to encrypt messages to this SP. */ - $certArray = SimpleSAML_Utilities::loadPublicKey($dstMetadata->toArray(), TRUE);
+                       $certArray = 
SimpleSAML_Utilities::loadPublicKey($dstMetadata, TRUE);
                        if (!array_key_exists('PEM', $certArray)) {
throw new Exception('Unable to locate key we should use to encrypt the assertionst ' . 'to the SP: ' . var_export($dstMetadata->getString('entityid'), TRUE) . '.');
=======================================
--- /trunk/www/saml2/idp/metadata.php   Fri May  7 02:13:40 2010
+++ /trunk/www/saml2/idp/metadata.php   Fri May  7 02:13:56 2010
@@ -20,7 +20,7 @@
$idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); $idpmeta = $metadata->getMetaDataConfig($idpentityid, 'saml20-idp-hosted');

- $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(), TRUE);
+       $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE);
        $certFingerprint = $certInfo['certFingerprint'];
        if (count($certFingerprint) === 1) {
                /* Only one valid certificate. */
=======================================
--- /trunk/www/saml2/sp/metadata.php    Fri May  7 02:13:40 2010
+++ /trunk/www/saml2/sp/metadata.php    Fri May  7 02:13:56 2010
@@ -55,7 +55,7 @@
                $metaArray['description'] = 
$spmeta->getLocalizedString('description');
        }

-       $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray());
+       $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta);
        if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
                $metaArray['certData'] = $certInfo['certData'];
        }
=======================================
--- /trunk/www/shib13/idp/metadata.php  Fri May  7 02:13:40 2010
+++ /trunk/www/shib13/idp/metadata.php  Fri May  7 02:13:56 2010
@@ -21,7 +21,7 @@
$idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] : $metadata->getMetaDataCurrentEntityID('shib13-idp-hosted'); $idpmeta = $metadata->getMetaDataConfig($idpentityid, 'shib13-idp-hosted');

- $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(), TRUE);
+       $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE);
        $certFingerprint = $certInfo['certFingerprint'];
        if (count($certFingerprint) === 1) {
                /* Only one valid certificate. */
=======================================
--- /trunk/www/shib13/sp/metadata.php   Fri May  7 02:13:40 2010
+++ /trunk/www/shib13/sp/metadata.php   Fri May  7 02:13:56 2010
@@ -28,7 +28,7 @@
'AssertionConsumerService' => $metadata->getGenerated('AssertionConsumerService', 'shib13-sp-hosted'),
        );

-       $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray());
+       $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta);
        if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
                $metaArray['certData'] = $certInfo['certData'];
        }

--
You received this message because you are subscribed to the Google Groups 
"simpleSAMLphp commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/simplesamlphp-commits?hl=en.

Reply via email to