PHP Classes

File: web/SSO/vendor/simplesamlphp/xmlseclibs/tests/xmlsec-decrypt-content.phpt

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/vendor/simplesamlphp/xmlseclibs/tests/xmlsec-decrypt-content.phpt   Download  
File: web/SSO/vendor/simplesamlphp/xmlseclibs/tests/xmlsec-decrypt-content.phpt
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 2,173 bytes
 

Contents

Class file image Download
--TEST--
Basic Decryption: Content
--FILE--
<?php
require(dirname(__FILE__) . '/../xmlseclibs.php');

/* When we need to locate our own key based on something like a key name */
function locateLocalKey($objKey) {
   
/* In this example the key is identified by filename */
   
$filename = $objKey->name;
    if (! empty(
$filename)) {
       
$objKey->loadKey(dirname(__FILE__) . "/$filename", TRUE);
    } else {
       
$objKey->loadKey(dirname(__FILE__) . "/privkey.pem", TRUE);
    }
}

$arTests = array('AOESP_SHA1'=>'oaep_sha1-res.xml',
  
'AOESP_SHA1_CONTENT'=>'oaep_sha1-content-res.xml');

$doc = new DOMDocument();

foreach (
$arTests AS $testName=>$testFile) {
   
$output = NULL;
    print
"$testName: ";

   
$doc->load(dirname(__FILE__) . "/$testFile");
   
    try {
       
$objenc = new XMLSecEnc();
       
$encData = $objenc->locateEncryptedData($doc);
        if (!
$encData) {
            throw new
Exception("Cannot locate Encrypted Data");
        }
       
$objenc->setNode($encData);
       
$objenc->type = $encData->getAttribute("Type");
        if (!
$objKey = $objenc->locateKey()) {
            throw new
Exception("We know the secret key, but not the algorithm");
        }
       
$key = NULL;
       
        if (
$objKeyInfo = $objenc->locateKeyInfo($objKey)) {
            if (
$objKeyInfo->isEncrypted) {
               
$objencKey = $objKeyInfo->encryptedCtx;
               
locateLocalKey($objKeyInfo);
               
$key = $objencKey->decryptKey($objKeyInfo);
            }
        }
       
        if (!
$objKey->key && empty($key)) {
           
locateLocalKey($objKey);
        }
        if (empty(
$objKey->key)) {
           
$objKey->loadKey($key);
        }
       
       
$token = NULL;

        if (
$decrypt = $objenc->decryptNode($objKey, TRUE)) {
           
$output = NULL;
            if (
$decrypt instanceof DOMNode) {
                if (
$decrypt instanceof DOMDocument) {
                   
$output = $decrypt->saveXML();
                } else {
                   
$output = $decrypt->ownerDocument->saveXML();
                }
            } else {
               
$output = $decrypt;
            }
        }
    } catch (
Exception $e) {

    }

   
$outfile = dirname(__FILE__) . "/basic-doc.xml";
   
$res = NULL;
    if (
file_exists($outfile)) {
       
$resDoc = new DOMDocument();
       
$resDoc->load($outfile);
       
$res = $resDoc->saveXML();
        if (
$output == $res) {
            print
"Passed\n";
            continue;
        }
    }
    print
"Failed\n";
   
}
?>
--EXPECTF--
AOESP_SHA1: Passed
AOESP_SHA1_CONTENT: Passed