3.1 Introduction
The Common Key Sets directory contains keys and certs to be used in the tests. Keys are in "OpenSSL" format and are all password encrypted using the string secret:
For this interoperability testing purposes, it was agreed that for asynchronous processing the completion of a pending message could be triggered by a Status Request from the client. Hence, asynchronous scenarios include Status Requests to be consistent with that.
In the tests where it is applicable, the symmetric encryption algorithm used will be tripleDES.
The client will include a UseKeyWith for "rfc2459", providing an X.509 distinguished name there, when it is necessary.
Key derivation is performed according to Section 8.1 of the specification, when it is necessary.
3.2 Tests
Test:XKISS-T1
Locate - Description:
A client wishes to obtain an encryption key bound to bob@example.com, so it can be able to send an encrypted mail to Bob. The client secure email format is S/MIME. The processing mode is synchronous. The resulting set of messages will consist of a Locate Request to the server and the Locate Result returned.
Messages:
Message
Request
<xkmsmsg><?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyName>...</ds:KeyName>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
Test:XKISS-T2
Validate - Description:
A client wishes to check whether a certificate supplied by a sender (Alice) in a message is valid or not, so he sends the certificate chain to the XKMS service. The processing mode is synchronous. The certificate is valid and it has not been revoked. The resulting set of messages will consist of a Validate Request to the server and the Validate Result returned reporting that the key binding has successfully been checked.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<ValidateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
</QueryKeyBinding>
</ValidateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<ValidateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Valid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</ValidReason>
</Status>
</KeyBinding>
</ValidateResult>
Test:XKISS-T3
Locate not found - Description:
In a similar scenario to XKISS-T1, a client wishes to obtain a key bound to bob2@example.com, but the server cannot locate a key for that user. The resulting set of messages will consist of a Locate Request to the server and the Locate Result returned.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob2@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." RequestId="..."
ResultMajor="http://www.w3.org/2002/03/xkms#Success" ResultMinor="NoMatch"
xmlns="http://www.w3.org/2002/03/xkms#"/>
Test:XKISS-T4
Validate an expired cert - Description:
In a similar scenario to XKISS-T2, a client wishes to check whether a certificate supplied by a sender (Eric) in a message is valid or not, so he sends the certificate chain to the XKMS service. The processing mode is synchronous. The certificate is not valid because it has expired. The resulting set of messages will consist of a Validate Request and a Validate Result.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<ValidateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
</QueryKeyBinding>
</ValidateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<ValidateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Invalid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<InvalidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</InvalidReason>
</Status>
</KeyBinding>
</ValidateResult>
Test:XKISS-T5
Validate a revoked cert - Description:
In a similar scenario to XKISS-T2, a client wishes to check whether a certificate supplied by a sender (Ralph) in a message is valid or not, so he sends the certificate chain to the XKMS service. The processing mode is synchronous. The certificate is not valid because it has been revoked. The resulting set of messages will consist of a Validate Request and a Validate Result.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<ValidateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="ralph@example.com" />
</QueryKeyBinding>
</ValidateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<ValidateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="ralph@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Invalid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</ValidReason>
<InvalidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</InvalidReason>
</Status>
</KeyBinding>
</ValidateResult>
Test:XKISS-T6
Two Phase - Description:
A client wishes to obtain an encryption key bound to bob@example.com, so it can be able to send an encrypted mail to Bob. The client secure email format is S/MIME. The processing mode is Two Phase. The resulting set of messages will consist of two Locate Requests to the server and two Locate Results returned.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Represent</ResponseMechanism>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult Id="..." Service="..." Nonce="..."
ResultMajor="http://www.w3.org/2002/03/xkms#Represent" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." Nonce="..." OriginalRequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
Test:XKISS-T7
Asynchronous - Description:
A client wishes to obtain an encryption key bound to bob@example.com. The client secure email format is S/MIME. The processing mode is asynchronous. The resulting set of messages will consist of two Locate Requests to the server and two Locate Responses returned. The server will notify by email when is it ready to receive the Pending Request. The resulting set of messages will consist of at least six messages: An initial Locate Request and Locate Result; One or more Status requests and responses, with the last Status Result stating the Success; a Pending Request and a final Locate Result.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Pending</ResponseMechanism>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Pending" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<StatusRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<StatusResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Pending" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<StatusRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<StatusResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<PendingRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyName>...</ds:KeyName>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
Test:XKISS-T8
Two Phase + Asynchronous - Description:
A client wishes to obtain an encryption key bound to bob@example.com. The client secure email format is S/MIME. The processing mode is Two Phase Protocol with Asynchronous Processing. The resulting set of messages will consist of at least eight messages: two Locate Requests to the server and two Locate Responses returned, corresponding to the Two Phase protocol, then at least a Status Request-Response pair and finally a Pending Request and the final Locate Result.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Pending</ResponseMechanism>
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Represent</ResponseMechanism>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult Id="..." Service="..." Nonce="..."
ResultMajor="http://www.w3.org/2002/03/xkms#Represent" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<LocateRequest Id="..." Service="..." Nonce="..." OriginalRequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Pending</ResponseMechanism>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Pending" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<StatusRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<StatusResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Pending" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<StatusRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<StatusResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<PendingRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
Nonce="..." xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<LocateResult xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyName>...</ds:KeyName>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
Test:XKISS-T9
Compound - Description:
A client wishes to make a locate and two validate requests simultaneously. The processing mode is synchronous. The locate and validate requests that will be made correspond to the tests XKISS-T1, XKISS-T2 and XKISS-T4. The resulting set of messages will consist of an outer Compound Request with three inner requests and an outer Compound Result with three inner results.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<CompoundRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<LocateRequest Id="..." Service="...">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
</QueryKeyBinding>
</ValidateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
</QueryKeyBinding>
</ValidateRequest>
</CompoundRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<CompoundResult Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<LocateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyName>...</ds:KeyName>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
<ValidateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Valid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</ValidReason>
</Status>
</KeyBinding>
</ValidateResult>
<ValidateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Invalid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<InvalidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</InvalidReason>
</Status>
</KeyBinding>
</ValidateResult>
</CompoundResult>
Test:XKISS-T10
Two Phase Compound - Description:
A client wishes to make a locate and two validate requests simultaneously. The processing mode is Two Phase Protocol. The locate and validate requests that will be made correspond to the tests XKISS-T1, XKISS-T2 and XKISS-T4. The resulting set of messages will consist of two outer Compound Request with three inner requests and two Compound Results, the first without inner results and the second containing three.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<CompoundRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Represent</ResponseMechanism>
<LocateRequest Id="..." Service="...">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
</QueryKeyBinding>
</ValidateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
</QueryKeyBinding>
</ValidateRequest>
</CompoundRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<CompoundResult Id="..." Service="..." Nonce="..."
ResultMajor="http://www.w3.org/2002/03/xkms#Represent" RequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<CompoundRequest Id="..." Service="..." Nonce="..." OriginalRequestId="..."
xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<LocateRequest Id="..." Service="...">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
</QueryKeyBinding>
</ValidateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
</QueryKeyBinding>
</ValidateRequest>
</CompoundRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<CompoundResult Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<LocateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<UnverifiedKeyBinding Id="...">
<ds:KeyInfo>
<ds:KeyName>...</ds:KeyName>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>...</ds:Modulus>
<ds:Exponent>...</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</UnverifiedKeyBinding>
</LocateResult>
<ValidateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Valid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</ValidReason>
</Status>
</KeyBinding>
</ValidateResult>
<ValidateResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Success" RequestId="...">
<KeyBinding Id="...">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
<Status StatusValue="http://www.w3.org/2002/03/xkms#Invalid">
<ValidReason>http://www.w3.org/2002/03/xkms#Signature</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#IssuerTrust</ValidReason>
<ValidReason>http://www.w3.org/2002/03/xkms#RevocationStatus</ValidReason>
<InvalidReason>http://www.w3.org/2002/03/xkms#ValidityInterval</InvalidReason>
</Status>
</KeyBinding>
</ValidateResult>
</CompoundResult>
Test:XKISS-T11
Asynchronous Compound - Description:
A client wishes to make a locate and two validate requests simultaneously. The processing mode is asynchronous. The locate and validate requests that will be made correspond to the tests XKISS-T1, XKISS-T2 and XKISS-T4. The client will send a Status Request after receiving the notification of the Locate message but when the validate messages are still pending. The resulting set of messages will consist of at least six messages: an initial outer Compound Request with three inner requests and the initial Compound Result; at least a Status Request-Result pair; a Pending Request and the final Compound Result with three inner results.
Messages:
Message
Request
<?xml version="1.0" encoding="utf-8"?>
<CompoundRequest Id="..." Service="..." xmlns="http://www.w3.org/2002/03/xkms#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ResponseMechanism>http://www.w3.org/2002/03/xkms#Pending</ResponseMechanism>
<LocateRequest Id="..." Service="...">
<RespondWith>http://www.w3.org/2002/03/xkms#KeyName</RespondWith>
<RespondWith>http://www.w3.org/2002/03/xkms#KeyValue</RespondWith>
<QueryKeyBinding>
<KeyUsage>http://www.w3.org/2002/03/xkms#Encryption</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob@example.com" />
</QueryKeyBinding>
</LocateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice@example.com" />
</QueryKeyBinding>
</ValidateRequest>
<ValidateRequest Id="..." Service="...">
<QueryKeyBinding>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<KeyUsage>http://www.w3.org/2002/03/xkms#Signature</KeyUsage>
<UseKeyWith Application="urn:ietf:rfc:2633" Identifier="eric@example.com" />
</QueryKeyBinding>
</ValidateRequest>
</CompoundRequest>Message
Response
<?xml version="1.0" encoding="utf-8"?>
<CompoundResult Id="..." Service="..." ResultMajor="http://www.w3.org/2002/03/xkms#Pending"
RequestId="..." xmlns="http://www.w3.org/2002/03/xkms#"/>Message
Request
<?xml version="1.0" encoding="utf-8"?>
<StatusRequest Id="..." Service="..." OriginalRequestId="..." ResponseId=""
xmlns="http://www.w3.org/2002/03/xkms#"/>
Message
Response
<?xml version="1.0" encoding="utf-8"?>
<StatusResult Id="..." Service="..." ResultMajor="http://www.w3