Author: adc Date: Mon Jan 24 13:36:06 2005 New Revision: 126318 URL: http://svn.apache.org/viewcvs?view=rev&rev=126318 Log: Added CSIv2 IDL files. Added: geronimo/trunk/modules/interop/src/idl/CSI.idl geronimo/trunk/modules/interop/src/idl/CSIIOP.idl geronimo/trunk/modules/interop/src/idl/GSSUP.idl Modified: geronimo/trunk/modules/interop/maven.xml
Modified: geronimo/trunk/modules/interop/maven.xml Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/interop/maven.xml?view=diff&rev=126318&p1=geronimo/trunk/modules/interop/maven.xml&r1=126317&p2=geronimo/trunk/modules/interop/maven.xml&r2=126318 ============================================================================== --- geronimo/trunk/modules/interop/maven.xml (original) +++ geronimo/trunk/modules/interop/maven.xml Mon Jan 24 13:36:06 2005 @@ -182,10 +182,106 @@ </ant:exec> </goal> - <goal name="interop:idlj:csiv2"> - <!-- Are there any CSIv2 IDL files that require generation? --> - <ant:echo message="Interop :: idlj :: CSIv2"/> - </goal> + <goal name="interop:idlj:csi"> + <ant:echo message="Interop :: idlj :: CSIv2 :: CSI"/> + <ant:exec dir="${basedir}" executable="idlj"> + <ant:arg line="-td"/> + <ant:arg line="${maven.build.src}"/> + <ant:arg line="-i"/> + <ant:arg line="${java.home}/lib"/> + <ant:arg line="-i"/> + <ant:arg line="${maven.src.dir}/idl"/> + <ant:arg line="-verbose"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CosNaming"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSI"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GSSUP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSIIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="${maven.src.dir}/idl/CSI.idl"/> + </ant:exec> + + <ant:echo message="Interop :: idlj :: CSIv2 :: GSSUP"/> + <ant:exec dir="${basedir}" executable="idlj"> + <ant:arg line="-td"/> + <ant:arg line="${maven.build.src}"/> + <ant:arg line="-i"/> + <ant:arg line="${java.home}/lib"/> + <ant:arg line="-i"/> + <ant:arg line="${maven.src.dir}/idl"/> + <ant:arg line="-verbose"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CosNaming"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSI"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GSSUP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSIIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="${maven.src.dir}/idl/GSSUP.idl"/> + </ant:exec> + + <ant:echo message="Interop :: idlj :: CSIv2 :: CSIIOP"/> + <ant:exec dir="${basedir}" executable="idlj"> + <ant:arg line="-td"/> + <ant:arg line="${maven.build.src}"/> + <ant:arg line="-i"/> + <ant:arg line="${java.home}/lib"/> + <ant:arg line="-i"/> + <ant:arg line="${maven.src.dir}/idl"/> + <ant:arg line="-verbose"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="IIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CosNaming"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSI"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="GSSUP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="-pkgPrefix"/> + <ant:arg line="CSIIOP"/> + <ant:arg line="${pkg.prefix}"/> + <ant:arg line="${maven.src.dir}/idl/CSIIOP.idl"/> + </ant:exec> +</goal> <goal name="interop:idlj:costxn"> <!-- Are there any CosTransaction IDL files that require generation? --> @@ -204,6 +300,7 @@ <attainGoal name="interop:idlj:iiop"/> <attainGoal name="interop:idlj:cosnaming"/> <attainGoal name="interop:idlj:interop-rmi-iiop"/> + <attainGoal name="interop:idlj:csi"/> </goal> <preGoal name="java:compile"> Added: geronimo/trunk/modules/interop/src/idl/CSI.idl Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/interop/src/idl/CSI.idl?view=auto&rev=126318 ============================================================================== --- (empty file) +++ geronimo/trunk/modules/interop/src/idl/CSI.idl Mon Jan 24 13:36:06 2005 @@ -0,0 +1,200 @@ +#ifndef _CSI_IDL_ +#define _CSI_IDL_ + +#pragma prefix "omg.org" + +module CSI { + + // The OMG VMCID; same value as CORBA::OMGVMCID. Do not change ever. + const unsigned long OMGVMCID = 0x4F4D0; + + // An X509CertificateChain contains an ASN.1 BER encoded SEQUENCE + // [1..MAX] OF X.509 certificates encapsulated in a sequence of octets. The + // subjects certificate shall come first in the list. Each following + // certificate shall directly certify the one preceding it. The ASN.1 + // representation of Certificate is as defined in [IETF RFC 2459]. + + typedef sequence <octet> X509CertificateChain; + + // an X.501 type name or Distinguished Name encapsulated in a sequence of + // octets containing the ASN.1 encoding. + + typedef sequence <octet> X501DistinguishedName; + + // UTF-8 Encoding of String + + typedef sequence <octet> UTF8String; + + // ASN.1 Encoding of an OBJECT IDENTIFIER + + typedef sequence <octet> OID; + + typedef sequence <OID> OIDList; + + // A sequence of octets containing a GSStoken. Initial context tokens are + // ASN.1 encoded as defined in [IETF RFC 2743] Section 3.1, + // "Mechanism-Independent token Format", pp. 81-82. Initial context tokens + // contain an ASN.1 tag followed by a token length, a mechanism identifier, + // and a mechanism-specific token (i.e. a GSSUP::InitialContextToken). The + // encoding of all other GSS tokens (e.g. error tokens and final context + // tokens) is mechanism dependent. + + typedef sequence <octet> GSSToken; + + // An encoding of a GSS Mechanism-Independent Exported Name Object as + // defined in [IETF RFC 2743] Section 3.2, "GSS Mechanism-Independent + // Exported Name Object Format," p. 84. + + typedef sequence <octet> GSS_NT_ExportedName; + + typedef sequence <GSS_NT_ExportedName> GSS_NT_ExportedNameList; + + // The MsgType enumeration defines the complete set of service context + // message types used by the CSI context management protocols, including + // those message types pertaining only to the stateful application of the + // protocols (to insure proper alignment of the identifiers between + // stateless and stateful implementations). Specifically, the + // MTMessageInContext is not sent by stateless clients (although it may + // be received by stateless targets). + + typedef short MsgType; + + const MsgType MTEstablishContext = 0; + const MsgType MTCompleteEstablishContext = 1; + const MsgType MTContextError = 4; + const MsgType MTMessageInContext = 5; + + // The ContextId type is used carry session identifiers. A stateless + // application of the service context protocol is indicated by a session + // identifier value of 0. + + typedef unsigned long long ContextId; + + // The AuthorizationElementType defines the contents and encoding of + // the_element field of the AuthorizationElement. + // The high order 20-bits of each AuthorizationElementType constant + // shall contain the Vendor Minor Codeset ID (VMCID) of the + // organization that defined the element type. The low order 12 bits + // shall contain the organization-scoped element type identifier. The + // high-order 20 bits of all element types defined by the OMG shall + // contain the VMCID allocated to the OMG (that is, 0x4F4D0). + + typedef unsigned long AuthorizationElementType; + + // An AuthorizationElementType of X509AttributeCertChain indicates that + // the_element field of the AuthorizationElement contains an ASN.1 BER + // SEQUENCE composed of an (X.509) AttributeCertificate followed by a + // SEQUENCE OF (X.509) Certificate. The two-part SEQUENCE is encapsulated + // in an octet stream. The chain of identity certificates is provided + // to certify the attribute certificate. Each certificate in the chain + // shall directly certify the one preceding it. The first certificate + // in the chain shall certify the attribute certificate. The ASN.1 + // representation of (X.509) Certificate is as defined in [IETF RFC 2459]. + // The ASN.1 representation of (X.509) AtributeCertificate is as defined + // in [IETF ID PKIXAC]. + + const AuthorizationElementType X509AttributeCertChain = OMGVMCID | 1; + + typedef sequence <octet> AuthorizationElementContents; + + // The AuthorizationElement contains one element of an authorization token. + // Each element of an authorization token is logically a PAC. + + struct AuthorizationElement { + AuthorizationElementType the_type; + AuthorizationElementContents the_element; + }; + + // The AuthorizationToken is made up of a sequence of + // AuthorizationElements + + typedef sequence <AuthorizationElement> AuthorizationToken; + + typedef unsigned long IdentityTokenType; + + // Additional standard identity token types shall only be defined by the + // OMG. All IdentityTokenType constants shall be a power of 2. + + const IdentityTokenType ITTAbsent = 0; + const IdentityTokenType ITTAnonymous = 1; + const IdentityTokenType ITTPrincipalName = 2; + const IdentityTokenType ITTX509CertChain = 4; + const IdentityTokenType ITTDistinguishedName = 8; + + typedef sequence <octet> IdentityExtension; + + union IdentityToken switch ( IdentityTokenType ) { + case ITTAbsent: boolean absent; + case ITTAnonymous: boolean anonymous; + case ITTPrincipalName: GSS_NT_ExportedName principal_name; + case ITTX509CertChain: X509CertificateChain certificate_chain; + case ITTDistinguishedName: X501DistinguishedName dn; + default: IdentityExtension id; + }; + + struct EstablishContext { + ContextId client_context_id; + AuthorizationToken authorization_token; + IdentityToken identity_token; + GSSToken client_authentication_token; + }; + + struct CompleteEstablishContext { + ContextId client_context_id; + boolean context_stateful; + GSSToken final_context_token; + }; + + struct ContextError { + ContextId client_context_id; + long major_status; + long minor_status; + GSSToken error_token; + }; + + // Not sent by stateless clients. If received by a stateless server, a + // ContextError message should be returned, indicating the session does + // not exist. + + struct MessageInContext { + ContextId client_context_id; + boolean discard_context; + }; + + union SASContextBody switch ( MsgType ) { + case MTEstablishContext: EstablishContext establish_msg; + case MTCompleteEstablishContext: CompleteEstablishContext complete_msg; + case MTContextError: ContextError error_msg; + case MTMessageInContext: MessageInContext in_context_msg; + }; + + // The following type represents the string representation of an ASN.1 + // OBJECT IDENTIFIER (OID). OIDs are represented by the string "oid:" + // followed by the integer base 10 representation of the OID separated + // by dots. For example, the OID corresponding to the OMG is represented + // as: "oid:2.23.130" + + typedef string StringOID; + + // The GSS Object Identifier for the KRB5 mechanism is: + // { iso(1) member-body(2) United States(840) mit(113554) infosys(1) + // gssapi(2) krb5(2) } + + const StringOID KRB5MechOID = "oid:1.2.840.113554.1.2.2"; + + // The GSS Object Identifier for name objects of the Mechanism-independent + // Exported Name Object type is: + // { iso(1) org(3) dod(6) internet(1) security(5) nametypes(6) + // gss-api-exported-name(4) } + + const StringOID GSS_NT_Export_Name_OID = "oid:1.3.6.1.5.6.4"; + + // The GSS Object Identifier for the scoped-username name form is: + // { iso-itu-t (2) international-organization (23) omg (130) security (1) + // naming (2) scoped-username(1) } + + const StringOID GSS_NT_Scoped_Username_OID = "oid:2.23.130.1.2.1"; + +}; // CSI + +#endif Added: geronimo/trunk/modules/interop/src/idl/CSIIOP.idl Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/interop/src/idl/CSIIOP.idl?view=auto&rev=126318 ============================================================================== --- (empty file) +++ geronimo/trunk/modules/interop/src/idl/CSIIOP.idl Mon Jan 24 13:36:06 2005 @@ -0,0 +1,134 @@ +#ifndef _CSIIOP_IDL_ +#define _CSIIOP_IDL_ +#include <IOP.idl> +#include <CSI.idl> + +#pragma prefix "omg.org" + +module CSIIOP { + + const IOP::ComponentId TAG_NULL_TAG = 34; + const IOP::ComponentId TAG_CSI_SEC_MECH_LIST = 33; + + // Association options + + typedef unsigned short AssociationOptions; + + const AssociationOptions NoProtection = 1; + const AssociationOptions Integrity = 2; + const AssociationOptions Confidentiality = 4; + const AssociationOptions DetectReplay = 8; + const AssociationOptions DetectMisordering = 16; + const AssociationOptions EstablishTrustInTarget = 32; + const AssociationOptions EstablishTrustInClient = 64; + const AssociationOptions NoDelegation = 128; + const AssociationOptions SimpleDelegation = 256; + const AssociationOptions CompositeDelegation = 512; + const AssociationOptions IdentityAssertion = 1024; + const AssociationOptions DelegationByClient = 2048; + + // The high order 20-bits of each ServiceConfigurationSyntax constant + // shall contain the Vendor Minor Codeset ID (VMCID) of the + // organization that defined the syntax. The low order 12 bits shall + // contain the organization-scoped syntax identifier. The high-order 20 + // bits of all syntaxes defined by the OMG shall contain the VMCID + // allocated to the OMG (that is, 0x4F4D0). + + typedef unsigned long ServiceConfigurationSyntax; + + const ServiceConfigurationSyntax SCS_GeneralNames = CSI::OMGVMCID | 0; + const ServiceConfigurationSyntax SCS_GSSExportedName = CSI::OMGVMCID | 1; + + typedef sequence <octet> ServiceSpecificName; + + // The name field of the ServiceConfiguration structure identifies a + // privilege authority in the format identified in the syntax field. If the + // syntax is SCS_GeneralNames, the name field contains an ASN.1 (BER) + // SEQUENCE [1..MAX] OF GeneralName, as defined by the type GeneralNames in + // [IETF RFC 2459]. If the syntax is SCS_GSSExportedName, the name field + // contains a GSS exported name encoded according to the rules in + // [IETF RFC 2743] Section 3.2, "Mechanism-Independent Exported Name + // Object Format," p. 84. + + struct ServiceConfiguration { + ServiceConfigurationSyntax syntax; + ServiceSpecificName name; + }; + + typedef sequence <ServiceConfiguration> ServiceConfigurationList; + + // The body of the TAG_NULL_TAG component is a sequence of octets of + // length 0. + // type used to define AS layer functionality within a compound mechanism + // definition + + struct AS_ContextSec { + AssociationOptions target_supports; + AssociationOptions target_requires; + CSI::OID client_authentication_mech; + CSI::GSS_NT_ExportedName target_name; + }; + + // type used to define SAS layer functionality within a compound mechanism + // definition + + struct SAS_ContextSec { + AssociationOptions target_supports; + AssociationOptions target_requires; + ServiceConfigurationList privilege_authorities; + CSI::OIDList supported_naming_mechanisms; + CSI::IdentityTokenType supported_identity_types; + }; + + // type used in the body of a TAG_CSI_SEC_MECH_LIST component to + // describe a compound mechanism + + struct CompoundSecMech { + AssociationOptions target_requires; + IOP::TaggedComponent transport_mech; + AS_ContextSec as_context_mech; + SAS_ContextSec sas_context_mech; + }; + + typedef sequence <CompoundSecMech> CompoundSecMechanisms; + + // type corresponding to the body of a TAG_CSI_SEC_MECH_LIST + // component + + struct CompoundSecMechList { + boolean stateful; + CompoundSecMechanisms mechanism_list; + }; + + struct TransportAddress { + string host_name; + unsigned short port; + }; + + typedef sequence <TransportAddress> TransportAddressList; + + // Tagged component for configuring SECIOP as a CSIv2 transport mechanism + + const IOP::ComponentId TAG_SECIOP_SEC_TRANS = 35; + + struct SECIOP_SEC_TRANS { + AssociationOptions target_supports; + AssociationOptions target_requires; + CSI::OID mech_oid; + CSI::GSS_NT_ExportedName target_name; + TransportAddressList addresses; + }; + + // tagged component for configuring TLS/SSL as a CSIv2 transport mechanism + + const IOP::ComponentId TAG_TLS_SEC_TRANS = 36; + + struct TLS_SEC_TRANS { + AssociationOptions target_supports; + AssociationOptions target_requires; + TransportAddressList addresses; + }; + +}; //CSIIOP + +#endif Added: geronimo/trunk/modules/interop/src/idl/GSSUP.idl Url: http://svn.apache.org/viewcvs/geronimo/trunk/modules/interop/src/idl/GSSUP.idl?view=auto&rev=126318 ============================================================================== --- (empty file) +++ geronimo/trunk/modules/interop/src/idl/GSSUP.idl Mon Jan 24 13:36:06 2005 @@ -0,0 +1,53 @@ +#ifndef _GSSUP_IDL_ +#define _GSSUP_IDL_ +#include <CSI.idl> + +#pragma prefix "omg.org" + +module GSSUP { + + // The GSS Object Identifier allocated for the + // username/password mechanism is defined below. + // + // { iso-itu-t (2) international-organization (23) omg (130) + // security (1) authentication (1) gssup-mechanism (1) } + + const CSI::StringOID GSSUPMechOID = "oid:2.23.130.1.1.1"; + + // The following structure defines the inner contents of the + // username password initial context token. This structure is + // CDR encapsulated and appended at the end of the + // username/password GSS (initial context) Token. + + struct InitialContextToken { + CSI::UTF8String username; + CSI::UTF8String password; + CSI::GSS_NT_ExportedName target_name; + }; + + typedef unsigned long ErrorCode; + + // GSSUP Mechanism-Specific Error Token + struct ErrorToken { + ErrorCode error_code; + }; + + // The context validator has chosen not to reveal the GSSUP + // specific cause of the failure. + const ErrorCode GSS_UP_S_G_UNSPECIFIED = 1; + + // The user identified in the username field of the + // GSSUP::InitialContextToken is unknown to the target. + const ErrorCode GSS_UP_S_G_NOUSER = 2; + + // The password supplied in the GSSUP::InitialContextToken was + // incorrect. + const ErrorCode GSS_UP_S_G_BAD_PASSWORD = 3; + + // The target_name supplied in the GSSUP::InitialContextToken does + // not match a target_name in a mechanism definition of the target. + const ErrorCode GSS_UP_S_G_BAD_TARGET = 4; + +}; // GSSUP + +#endif