home *** CD-ROM | disk | FTP | other *** search
/ ftp.rsa.com / 2014.05.ftp.rsa.com.tar / ftp.rsa.com / pub / otps / ct-kip / ct-kip-v1-0fd.xsd < prev    next >
Extensible Markup Language  |  2014-05-02  |  12KB  |  325 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Schema file for CT-KIP v1.0 -->
  3. <!-- $Revision: 1.5 $ $Date: 2005/12/01 13:57:48 $ -->
  4.  
  5. <!-- License to copy and use this schema file is granted provided that
  6.      it is identified as "RSA Security Inc. Cryptographic Token Key
  7.      Initialization Protocol (CT-KIP) v1.0" in all material mentioning
  8.      or referencing it.
  9.  
  10.      RSA Security Inc. makes no representations concerning either the
  11.      merchantability of this schema or the suitability of this schema
  12.      for any particular purpose. It is provided "as is" without
  13.      express or implied warranty of any kind.
  14. -->
  15.  
  16. <xs:schema
  17.   targetNamespace="http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#"
  18.   xmlns:xs="http://www.w3.org/2001/XMLSchema"
  19.   xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  20.   xmlns="http://www.rsasecurity.com/rsalabs/otps/schemas/2005/12/ct-kip#">
  21.  
  22.  
  23.   <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
  24.    schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
  25.  
  26. <!-- Basic types -->
  27.  
  28. <xs:complexType name="AbstractRequestType" abstract="true">
  29.   <xs:attribute name="Version" type="VersionType" use="required"/>
  30. </xs:complexType>
  31.  
  32. <xs:complexType name="AbstractResponseType" abstract="true">
  33.   <xs:attribute name="Version" type="VersionType" use="required"/>
  34.   <xs:attribute name="SessionID" type="IdentifierType"/>
  35.   <xs:attribute name="Status" type="StatusCode" use="required"/>
  36. </xs:complexType>
  37.  
  38. <xs:simpleType name="StatusCode">
  39.   <xs:restriction base="xs:string">
  40.     <xs:enumeration value="Continue"/>
  41.     <xs:enumeration value="Success"/>
  42.     <xs:enumeration value="Abort"/>
  43.     <xs:enumeration value="AccessDenied"/>
  44.     <xs:enumeration value="MalformedRequest"/>
  45.     <xs:enumeration value="UnknownRequest"/>
  46.     <xs:enumeration value="UnknownCriticalExtension"/>
  47.     <xs:enumeration value="UnsupportedVersion"/>
  48.     <xs:enumeration value="NoSupportedKeyTypes"/>
  49.     <xs:enumeration value="NoSupportedEncryptionAlgorithms"/>
  50.     <xs:enumeration value="NoSupportedMACAlgorithms"/>
  51.     <xs:enumeration value="InitializationFailed"/>
  52.   </xs:restriction>
  53. </xs:simpleType>
  54.  
  55. <xs:simpleType name="VersionType">
  56.   <xs:restriction base="xs:string">
  57.     <xs:pattern value="\d{1,2}\.\d{1,3}"/>
  58.   </xs:restriction>
  59. </xs:simpleType>
  60.  
  61. <xs:simpleType name="IdentifierType">
  62.   <xs:restriction base="xs:string">
  63.     <xs:maxLength value="128"/>
  64.   </xs:restriction>
  65. </xs:simpleType>
  66.  
  67. <xs:simpleType name="NonceType">
  68.   <xs:restriction base="xs:base64Binary">
  69.     <xs:length value="16"/>
  70.   </xs:restriction>
  71. </xs:simpleType>
  72.  
  73. <xs:complexType name="LogoType">
  74.   <xs:simpleContent>
  75.     <xs:extension base="xs:base64Binary">
  76.       <xs:attribute name="MimeType" type="MimeTypeType"
  77.       use="required"/>
  78.     </xs:extension>
  79.   </xs:simpleContent>
  80. </xs:complexType>
  81.  
  82. <xs:simpleType name="MimeTypeType">
  83.   <xs:restriction base="xs:string">
  84.     <xs:enumeration value="image/jpeg"/>
  85.     <xs:enumeration value="image/gif"/>
  86.   </xs:restriction>
  87. </xs:simpleType>
  88.  
  89. <!-- Algorithms are identified through URIs -->
  90. <xs:complexType name="AlgorithmsType">
  91.   <xs:sequence maxOccurs="unbounded">
  92.     <xs:element name="Algorithm" type="AlgorithmType"/>
  93.   </xs:sequence>
  94. </xs:complexType>
  95.  
  96. <xs:simpleType name="AlgorithmType">
  97.   <xs:restriction base="xs:anyURI"/>
  98. </xs:simpleType>
  99.  
  100. <xs:complexType name="MacType">
  101.   <xs:simpleContent>
  102.     <xs:extension base="xs:base64Binary">
  103.       <xs:attribute name="MacAlgorithm" type="xs:anyURI"/>
  104.     </xs:extension>
  105.   </xs:simpleContent>
  106. </xs:complexType>
  107.  
  108. <!-- CT-KIP extensions (for future use) -->
  109. <xs:complexType name="ExtensionsType">
  110.   <xs:sequence maxOccurs="unbounded">
  111.     <xs:element name="Extension" type="AbstractExtensionType"/>
  112.   </xs:sequence>
  113. </xs:complexType>
  114.  
  115. <xs:complexType name="AbstractExtensionType" abstract="true">
  116.   <xs:attribute name="Critical" type="xs:boolean"/>
  117. </xs:complexType>
  118.  
  119. <xs:complexType name="OTPKeyConfigurationDataType">
  120.   <xs:annotation>
  121.     <xs:documentation xml:lang="en">
  122.       This extension is only valid in ServerFinished PDUs. It carries
  123.       additional configuration data that an OTP token should use
  124.       (subject to local policy) when generating OTP values from a
  125.       newly generated OTP key.
  126.     </xs:documentation>
  127.   </xs:annotation>
  128.   <xs:complexContent>
  129.     <xs:extension base="AbstractExtensionType">
  130.       <xs:sequence>
  131.         <xs:element name="OTPFormat" type="OTPFormatType"/>
  132.         <xs:element name="OTPLength" type="xs:positiveInteger"/>
  133.         <xs:element name="OTPMode" type="OTPModeType" minOccurs="0"/>
  134.       </xs:sequence>
  135.     </xs:extension>
  136.   </xs:complexContent>
  137. </xs:complexType>
  138.  
  139. <xs:simpleType name="OTPFormatType">
  140.   <xs:restriction base="xs:string">
  141.     <xs:enumeration value="Decimal"/>
  142.     <xs:enumeration value="Hexadecimal"/>
  143.     <xs:enumeration value="Alphanumeric"/>
  144.     <xs:enumeration value="Binary"/>
  145.   </xs:restriction>
  146. </xs:simpleType>
  147.  
  148. <xs:complexType name="OTPModeType">
  149.   <xs:choice maxOccurs="unbounded">
  150.     <xs:element name="Time" type="TimeType"/>
  151.     <xs:element name="Counter"/>
  152.     <xs:element name="Challenge"/>
  153.     <xs:any namespace="##other" processContents="strict"/>
  154.   </xs:choice>
  155. </xs:complexType>
  156.  
  157. <xs:complexType name="TimeType">
  158.   <xs:complexContent>
  159.     <xs:restriction base="xs:anyType">
  160.       <xs:attribute name="TimeInterval" type="xs:positiveInteger"/>
  161.     </xs:restriction>
  162.   </xs:complexContent>
  163. </xs:complexType>
  164.  
  165. <xs:complexType name="PayloadType">
  166.   <xs:annotation>
  167.     <xs:documentation xml:lang="en">
  168.     </xs:documentation>
  169.   </xs:annotation>
  170.   <xs:choice>
  171.     <xs:element name="Nonce" type="NonceType"/>
  172.     <xs:any namespace="##other" processContents="strict"/>
  173.   </xs:choice>
  174. </xs:complexType>
  175.  
  176. <xs:simpleType name="PlatformType">
  177.   <xs:restriction base="xs:string">
  178.     <xs:enumeration value="Hardware"/>
  179.     <xs:enumeration value="Software"/>
  180.     <xs:enumeration value="Unspecified"/>
  181.   </xs:restriction>
  182. </xs:simpleType>
  183.  
  184. <xs:complexType name="TokenPlatformInfoType">
  185.   <xs:annotation>
  186.     <xs:documentation xml:lang="en">
  187.       Carries token platform information helping the client to select
  188.       a suitable token.
  189.     </xs:documentation>
  190.   </xs:annotation>
  191.   <xs:attribute name="KeyLocation" type="PlatformType"/>
  192.   <xs:attribute name="AlgorithmLocation" type="PlatformType"/>
  193. </xs:complexType>
  194.  
  195. <xs:complexType name="InitializationTriggerType">
  196.   <xs:sequence>
  197.     <xs:element name="TokenID" type="xs:base64Binary" minOccurs="0"/>
  198.     <xs:element name="KeyID" type="xs:base64Binary" minOccurs="0"/>
  199.     <xs:element name="TokenPlatformInfo" type="TokenPlatformInfoType" minOccurs="0"/>
  200.     <xs:element name="TriggerNonce" type="NonceType"/>
  201.     <xs:element name="CT-KIPURL" type="xs:anyURI" minOccurs="0"/>
  202.     <xs:any namespace="##other" processContents="strict" minOccurs="0"/>
  203.   </xs:sequence>
  204. </xs:complexType>
  205.  
  206. <!-- CT-KIP PDUs -->
  207.  
  208. <!-- CT-KIP trigger -->
  209. <xs:element name="CT-KIPTrigger" type="CT-KIPTriggerType"/>
  210.  
  211. <xs:complexType name="CT-KIPTriggerType">
  212.   <xs:annotation>
  213.     <xs:documentation xml:lang="en">
  214.       Message used to trigger the device to initiate a CT-KIP run.
  215.     </xs:documentation>
  216.   </xs:annotation>
  217.   <xs:sequence>
  218.     <xs:choice>
  219.       <xs:element name="InitializationTrigger"
  220.       type="InitializationTriggerType"/>
  221.       <xs:any namespace="##other" processContents="strict"/>
  222.     </xs:choice>
  223.   </xs:sequence>
  224.   <xs:attribute name="Version" type="VersionType"/>
  225. </xs:complexType>
  226.  
  227. <!-- ClientHello PDU -->
  228. <xs:element name="ClientHello" type="ClientHelloPDU"/>
  229.  
  230. <xs:complexType name="ClientHelloPDU">
  231.   <xs:annotation>
  232.     <xs:documentation xml:lang="en">
  233.       Message sent from CT-KIP client to CT-KIP server to initiate an
  234.       CT-KIP session.
  235.     </xs:documentation>
  236.   </xs:annotation>
  237.   <xs:complexContent>
  238.     <xs:extension base="AbstractRequestType">
  239.       <xs:sequence>
  240.         <xs:element name="TokenID" type="xs:base64Binary" minOccurs="0"/>
  241.         <xs:element name="KeyID" type="xs:base64Binary" minOccurs="0"/>
  242.         <xs:element name="ClientNonce" type="NonceType" minOccurs="0"/>
  243.         <xs:element name="TriggerNonce" type="NonceType" minOccurs="0"/>
  244.         <xs:element name="SupportedKeyTypes" type="AlgorithmsType"/>
  245.         <xs:element name="SupportedEncryptionAlgorithms" type="AlgorithmsType"/>
  246.         <xs:element name="SupportedMACAlgorithms" type="AlgorithmsType"/>
  247.         <xs:element name="Extensions" type="ExtensionsType" minOccurs="0"/> 
  248.       </xs:sequence>
  249.     </xs:extension>
  250.   </xs:complexContent>
  251. </xs:complexType>
  252.  
  253. <!-- ServerHello PDU -->
  254. <xs:element name="ServerHello" type="ServerHelloPDU"/>
  255.  
  256. <xs:complexType name="ServerHelloPDU">
  257.   <xs:annotation>
  258.     <xs:documentation xml:lang="en">
  259.       Message sent from CT-KIP server to CT-KIP client in response to
  260.       a received ClientHello PDU.
  261.     </xs:documentation>
  262.   </xs:annotation>
  263.   <xs:complexContent>
  264.     <xs:extension base="AbstractResponseType">
  265.       <xs:sequence minOccurs="0">
  266.         <xs:element name="KeyType" type="AlgorithmType"/>
  267.         <xs:element name="EncryptionAlgorithm" type="AlgorithmType"/>
  268.         <xs:element name="MacAlgorithm" type="AlgorithmType"/>
  269.         <xs:element name="EncryptionKey" type="ds:KeyInfoType"/>
  270.         <xs:element name="Payload" type="PayloadType"/>
  271.         <xs:element name="Extensions" type="ExtensionsType" minOccurs="0"/>
  272.         <xs:element name="Mac" type="MacType" minOccurs="0"/>
  273.       </xs:sequence>
  274.     </xs:extension>
  275.   </xs:complexContent>
  276. </xs:complexType>
  277.  
  278. <!-- ClientNonce PDU -->
  279. <xs:element name="ClientNonce" type="ClientNoncePDU"/>
  280.  
  281. <xs:complexType name="ClientNoncePDU">
  282.   <xs:annotation>
  283.     <xs:documentation xml:lang="en">
  284.       Second message sent from CT-KIP client to CT-KIP server to
  285.       convey the client's chosen secret.
  286.     </xs:documentation>
  287.   </xs:annotation>
  288.   <xs:complexContent>
  289.     <xs:extension base="AbstractRequestType">
  290.       <xs:sequence>
  291.         <xs:element name="EncryptedNonce" type="xs:base64Binary"/>
  292.         <xs:element name="Extensions" type="ExtensionsType" minOccurs="0"/>
  293.       </xs:sequence>
  294.       <xs:attribute name="SessionID" type="IdentifierType" use="required"/>
  295.     </xs:extension>
  296.   </xs:complexContent>
  297. </xs:complexType>
  298.  
  299. <!-- ServerFinished PDU -->
  300. <xs:element name="ServerFinished" type="ServerFinishedPDU"/>
  301. <xs:complexType name="ServerFinishedPDU">
  302.   <xs:annotation>
  303.     <xs:documentation xml:lang="en">
  304.       Final message sent from CT-KIP server to CT-KIP client in an
  305.       CT-KIP session.
  306.     </xs:documentation>
  307.   </xs:annotation>
  308.   <xs:complexContent>
  309.     <xs:extension base="AbstractResponseType">
  310.       <xs:sequence minOccurs="0">
  311.         <xs:element name="TokenID" type="xs:base64Binary"/>
  312.         <xs:element name="KeyID" type="xs:base64Binary"/>
  313.         <xs:element name="KeyExpiryDate" type="xs:dateTime" minOccurs="0"/> 
  314.     <xs:element name="ServiceID" type="IdentifierType" minOccurs="0"/>
  315.     <xs:element name="ServiceLogo" type="LogoType" minOccurs="0"/>
  316.         <xs:element name="UserID" type="IdentifierType" minOccurs="0"/>
  317.         <xs:element name="Extensions" type="ExtensionsType" minOccurs="0"/>
  318.         <xs:element name="Mac" type="MacType"/>
  319.       </xs:sequence>
  320.     </xs:extension>
  321.   </xs:complexContent>
  322. </xs:complexType> 
  323.  
  324. </xs:schema>
  325.