pax_global_header 0000666 0000000 0000000 00000000064 14035147262 0014516 g ustar 00root root 0000000 0000000 52 comment=5b682b8b507d09bcec98306061664b395a0e936b
ts_103666-1_general_characteristics-v15.6.0/ 0000775 0000000 0000000 00000000000 14035147262 0020336 5 ustar 00root root 0000000 0000000 ts_103666-1_general_characteristics-v15.6.0/LICENSE 0000664 0000000 0000000 00000002703 14035147262 0021345 0 ustar 00root root 0000000 0000000 Copyright 2019 ETSI
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE. ts_103666-1_general_characteristics-v15.6.0/README.md 0000664 0000000 0000000 00000000124 14035147262 0021612 0 ustar 00root root 0000000 0000000 # Draft TS 103 666-1 General characteristics
## Licensing information
See LICENSE. ts_103666-1_general_characteristics-v15.6.0/asn1/ 0000775 0000000 0000000 00000000000 14035147262 0021200 5 ustar 00root root 0000000 0000000 ts_103666-1_general_characteristics-v15.6.0/asn1/README.md 0000664 0000000 0000000 00000001647 14035147262 0022467 0 ustar 00root root 0000000 0000000 # Update of the ASN.1 file
The following steps shall be followed to update the ASN.1 file in TS 103 666-1:
1. CR is accepted by SCP Plenary which modifies any of the ASN.1 snippets in TS 103 666-1.
2. Implement the CR(s) in a new draft of the specification to be published.
3. Generate complete ASN.1 file from the draft of the specification. This can be performed using the tools_extract_asn1.py script.
4. Make sure that the generated ASN.1 file compiles successfully using any ASN.1 compiler.
5. Submit generated ASN.1 file to Git repository. CR number and SCP document number shall be mentioned in the commit message.
6. Update Annex L.2 in the draft of TS 103 666-1 with Git link to updated ASN.1 file.
7. Start publication process of the new version of TS 103 666-1.
**Important:** the ASN.1 file shall always be generated from the complete specification and not making changes to the ASN.1 file present in the Git repository.
ts_103666-1_general_characteristics-v15.6.0/asn1/asn1_syntax.asn1 0000664 0000000 0000000 00000110472 14035147262 0024241 0 ustar 00root root 0000000 0000000 SSPDefinitions { itu-t (0) identified-organization (4) etsi (0) smart-secure-platform (3666) part1 (1) }
DEFINITIONS
AUTOMATIC TAGS
EXTENSIBILITY IMPLIED ::=
BEGIN
EXPORTS ALL;
/* Imports */
IMPORTS
Certificate, -- RFC5280 Certificate X.509v3
id-pkix,
Extensions, -- RFC5280 X.509v3 extension
Extension,
AlgorithmIdentifier,
Attribute,
AttributeType,
AttributeValue,
AttributeTypeAndValue,
SubjectPublicKeyInfo,
UniqueIdentifier,
Validity,
Version
FROM PKIX1Explicit88
ECDSA-Sig-Value
FROM PKIX1Algorithms88;
/* Basic types */
maxUInt32 INTEGER ::= 4294967295
UInt32 ::= INTEGER (0..maxUInt32)
/* Common types */
UUID ::= OCTET STRING (SIZE(16))
URI ::= OCTET STRING
Certificates ::= SET OF Certificate
VersionType ::= OCTET STRING(SIZE(2)) -- major/minor version, coded as binary value on byte 1 and 2, e.g. '0F 00' for v15.0.
PhysicalInterfaceType ::= ENUMERATED
{
ePhysicalInterfaceType-ISO (0), -- ISO/IEC 7816 interface
ePhysicalInterfaceType-SWP (1), -- SWP interface
ePhysicalInterfaceType-SPI (2), -- SPI interface
ePhysicalInterfaceType-I2C (3), -- I2C interface
ePhysicalInterfaceType-USB (4) -- USB interface
}
PhysicalInterface ::= SEQUENCE
{
aInterfaceType PhysicalInterfaceType, -- physical interface type
aMaximumInterfacePowerSupply INTEGER (0..1000) OPTIONAL -- max power supply of the interface
}
/* Capabilities of the terminal */
TerminalCapability ::= SEQUENCE
{
aTerminalRelease [0] VersionType,
aTerminalVendorName [1] UTF8String (SIZE(1..20)) OPTIONAL,
aPhysicalInterfaces [2] SEQUENCE OF PhysicalInterface OPTIONAL, -- list of interfaces
aExternalPowerSupply [3] INTEGER (0..1000) DEFAULT 0,
aToolkitTerminalProfile [4] OCTET STRING OPTIONAL
}
/* Class of the SSP, as defined in clause 11 */
SSPClass ::= ENUMERATED
{
eSSPClass-Integrated (0), -- iSSP
eSSPClass-Embedded-Type1 (1), -- eSSP Type 1
eSSPClass-Embedded-Type2 (2), -- eSSP Type 2
eSSPClass-Removable (3) -- rSSP
}
/* Capabilities of the SSP */
SSPCapability ::= SEQUENCE
{
aSspRelease [0] VersionType,
aSspVendorName [1] UTF8String (SIZE(1..20)) OPTIONAL,
aSspClass [2] SSPClass,
aClassSpecificCapabilities [3] ANY DEFINED BY aSspClass OPTIONAL,
aSspUicc [4] SspUiccCapability OPTIONAL,
aSspUserInterface [5] SSPUserInterface OPTIONAL,
aPhysicalInterfaces [6] SEQUENCE OF PhysicalInterface OPTIONAL, -- list of interfaces
aSspExternalMaxPowerConsumption [7] INTEGER (0..1000) OPTIONAL
}
/* Capabilities of the SSP - UICC*/
SspUiccCapability ::= SEQUENCE
{
aNumberOfLogicalChannels [0] INTEGER (1..20) DEFAULT 1,
aProactivePollingRequirement [1] BOOLEAN DEFAULT FALSE,
aSupportOfUiccFileSystem [2] BOOLEAN DEFAULT FALSE,
aSupportOfCardApplicationToolkit [3] BOOLEAN DEFAULT FALSE,
aCardApplicationToolkitCapabilities [4] OCTET STRING OPTIONAL
}
/* Capabilities of the SSP - User interface */
SSPUserInterface ::= SEQUENCE
{
aUrl [1] OCTET STRING -- Url for the user interface
}
/* Node descriptor */
FileSize ::= INTEGER
MetaDatum ::= SEQUENCE
{
aTypeDatum OBJECT IDENTIFIER,
aData ANY DEFINED BY aTypeDatum OPTIONAL
}
NodeDescriptor ::= SEQUENCE
{
aNodeName NodeName, -- Node name
aShortName UUID, -- Short node name
aNode CHOICE
{
aLink SEQUENCE
{
aLinkedFileIdentity NodeIdentity, -- Identity of the linked SSP file
aLinkedFileSize FileSize -- Size of the linked SSP file
},
aFile SEQUENCE
{
aFileSize FileSize -- Size of the SSP file
},
aDirectory SEQUENCE
{
}
},
aMetaData SEQUENCE OF MetaDatum OPTIONAL, -- Optional meta data
aACL SET OF AccessControl OPTIONAL -- Access Control List attribute
}
/* Node identity */
NodeName ::= UTF8String (SIZE(1..16)) -- node name encoded in UTF-8
NodeReference ::= SEQUENCE (SIZE(1..6)) OF NodeName -- pathname and node name
NodeIdentity ::= CHOICE
{
aShortName UUID, -- UUID of file reference using absolute pathname
aNodeReference NodeReference -- Node reference
}
AccessMode ::= BIT STRING
{
eReadAccessMode (0), -- Access mode: read
eWriteAccessMode (1) -- Access mode: write
}
SessionID ::= INTEGER (0..255)
eFSAccessRight-RequiresSecurePipe AccessorRights ::= { eRight-Bit1 }
eFSAccessRight-ReadContent AccessorRights ::= { eRight-Bit2 }
eFSAccessRight-GetInfo AccessorRights ::= { eRight-Bit3 }
eFSAccessRight-Write AccessorRights ::= { eRight-Bit4 }
eFSAccessRight-UpdateMetadata AccessorRights ::= { eRight-Bit5 }
eFSAccessRight-UpdateACL AccessorRights ::= { eRight-Bit6 }
eFSAccessRight-Delete AccessorRights ::= { eRight-Bit7 }
eFSAccessRight-DeleteChild AccessorRights ::= { eRight-Bit8 }
FS-ADMIN-GET-CAPABILITIES-Service-Command ::= [PRIVATE 16] SEQUENCE
{
}
FS-ADMIN-GET-CAPABILITIES-Service-Response-Parameter ::= SEQUENCE
{
aVersion VersionType, -- Release of the file system service
aSimultaneousFileSessions INTEGER (1..32) DEFAULT 1, -- Max number of simultaneous file sessions
aSimultaneousFileSessionsPerFile INTEGER (1..32) DEFAULT 1, -- Max number of sessions on a file
aTotalCapacity INTEGER (0..MAX), -- Total capacity in bytes
aFreeCapacity INTEGER (0..MAX), -- Remaining capacity in bytes
aMaxMetaDataSizePerNode INTEGER (0..MAX) -- Maximum metadata size per node
}
FS-ADMIN-GET-CAPABILITIES-Service-Response ::= [PRIVATE 16] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-ADMIN-GET-CAPABILITIES-Service-Response-Parameter OPTIONAL
}
FS-ADMIN-CREATE-NODE-Service-Command ::= [PRIVATE 17] SEQUENCE
{
aNodeDescriptor NodeDescriptor, -- Node descriptor
aNodeDirectoryIdentity NodeIdentity -- Node identity
}
FS-ADMIN-CREATE-NODE-Service-Response ::= [PRIVATE 17] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK
}
FS-ADMIN-DELETE-NODE-Service-Command ::= [PRIVATE 18] SEQUENCE
{
aNodeIdentity NodeIdentity -- Node identity
}
FS-ADMIN-DELETE-NODE-Service-Response ::= [PRIVATE 18] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK
}
FS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Command ::= [PRIVATE 19] SEQUENCE
{
aNodeIdentity NodeIdentity, -- Node identity
aMetaData SEQUENCE OF MetaDatum OPTIONAL, -- New meta data
aACL SET OF AccessControl OPTIONAL -- New access control
}
FS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Response ::= [PRIVATE 19] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK
}
FS-OP-FILE-OPEN-Service-Command ::= [PRIVATE 20] SEQUENCE
{
aNodeIdentity NodeIdentity, -- Node identity
aAccessMode AccessMode DEFAULT '01'B, -- Access mode, default: eReadAccessMode
aGateURI URI OPTIONAL -- URI of data gate (only for transfer on separate pipe session)
}
FS-OP-FILE-OPEN-Service-Response-Parameter ::= SEQUENCE
{
aSessionID SessionID -- File session
}
FS-OP-FILE-OPEN-Service-Response ::= [PRIVATE 20] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-OP-FILE-OPEN-Service-Response-Parameter OPTIONAL
}
FS-OP-FILE-CLOSE-Service-Command ::= [PRIVATE 21] SEQUENCE
{
aSessionID SessionID -- File session
}
FS-OP-FILE-CLOSE-Service-Response ::= [PRIVATE 21] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK
}
FS-OP-NODE-GET-INFO-Service-Command ::= [PRIVATE 22] SEQUENCE
{
aNodeIdentity NodeIdentity, -- Node identity
aRequestType BIT STRING
{
aParent (0), -- Get info on the parent of the requested node (if not set, get info of requested node)
aContain (1), -- Get info on the child nodes of the requested node (applicable only for SSP directories)
aMetaData (2) -- Include metadata in the response
} DEFAULT '000'B
}
FS-OP-NODE-GET-INFO-Service-Response-Parameter ::= SEQUENCE
{
aNodeDescriptorList SEQUENCE (SIZE (1..255)) OF NodeDescriptor
}
FS-OP-NODE-GET-INFO-Service-Response ::= [PRIVATE 22] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-OP-NODE-GET-INFO-Service-Response-Parameter OPTIONAL
}
FS-OP-FILE-READ-Service-Command ::= [PRIVATE 23] SEQUENCE
{
aSessionID SessionID, -- File session
aOffset UInt32 OPTIONAL, -- Offset from the beginning of the file
aNumberOfBytes UInt32 OPTIONAL -- Number of bytes to read
}
FS-OP-FILE-READ-Service-Response-Parameter ::= SEQUENCE
{
aSessionID SessionID, -- File session
aData OCTET STRING OPTIONAL
}
FS-OP-FILE-READ-Service-Response ::= [PRIVATE 23] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-OP-FILE-READ-Service-Response-Parameter OPTIONAL
}
FS-OP-FILE-WRITE-Service-Command ::= [PRIVATE 24] SEQUENCE
{
aSessionID SessionID, -- File session
aOffset UInt32 OPTIONAL, -- Offset from the beginning of the file
aDataInfo CHOICE
{
aNumberOfBytes UInt32, -- Number of bytes to write
aData OCTET STRING -- Data to write
}
}
FS-OP-FILE-WRITE-Service-Response-Parameter ::= SEQUENCE
{
aSessionID SessionID -- File session
}
FS-OP-FILE-WRITE-Service-Response ::= [PRIVATE 24] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-OP-FILE-WRITE-Service-Response-Parameter OPTIONAL
}
FS-OP-FILE-GET-POSITION-Service-Command ::= [PRIVATE 25] SEQUENCE
{
aSessionID SessionID -- File session
}
FS-OP-FILE-GET-POSITION-Service-Response-Parameter ::= SEQUENCE
{
aCurrentOffset UInt32 OPTIONAL -- Current offset
}
FS-OP-FILE-GET-POSITION-Service-Response ::= [PRIVATE 25] SEQUENCE
{
aFS-Service-Response FS-Service-Response DEFAULT eFS-OK,
aParameter FS-OP-FILE-GET-POSITION-Service-Response-Parameter OPTIONAL
}
FS-Service-Response ::= ENUMERATED
{
eFS-OK (0), -- no error
eFS-E-CMD-PAR-UNKNOWN (2), -- unknown or illegal command parameter
eFS-E-NOK (3), -- the command has failed
eFS-NODE-BUSY (9), -- The file system is already processing an operation on the node
eFS-NODE-NOT-FOUND (10), -- Node not found
eFS-OPERATION-ILLEGAL (11), -- Illegal operation (eg. opening a file with a directory identity instead a file identity)
eFS-NOT-ENOUGH-SPACE (12), -- The operation exceeds the size limit of a file
eFS-BAD-SESSSION-ID (13), -- the session identifier related to a file does not exist
eFS-ACL-RULES-VIOLATIONS (14), -- the operation of the administration violates the ACL rules associated to a node
eFS-MAX-FILE-SESSION-REACHED (15) -- the maximum number of file sessions has been reached
}
AccessControl ::= SEQUENCE
{
aAccessorIdentity AccessorIdentity, -- Identity of the accessor accessing the resource
aAccessorRights AccessorRights, -- Accessor rights (e.g. delete, update).
aGrantorIdentity AccessorIdentity OPTIONAL -- Identity of the grantor
}
AccessorRights ::= BIT STRING
{
eRight-Bit1 (0),
eRight-Bit2 (1),
eRight-Bit3 (2),
eRight-Bit4 (3),
eRight-Bit5 (4),
eRight-Bit6 (5),
eRight-Bit7 (6),
eRight-Bit8 (7),
eRight-Bit9 (8),
eRight-Bit10 (9),
eRight-Bit11 (10),
eRight-Bit12 (11),
eRight-Bit13 (12),
eRight-Bit14 (13),
eRight-Bit15 (14),
eRight-Bit16 (15),
eRight-Bit17 (16),
eRight-Bit18 (17),
eRight-Bit19 (18),
eRight-Bit20 (19),
eRight-Bit21 (20),
eRight-Bit22 (21),
eRight-Bit23 (22),
eRight-Bit24 (23),
eRight-Bit25 (24),
eRight-Bit26 (25),
eRight-Bit27 (26),
eRight-Bit28 (27),
eRight-Bit29 (28),
eRight-Bit30 (29),
eRight-Bit31 (30),
eRight-Bit32 (31)
} (SIZE(32))
AccessControlList ::= SET OF AccessControl -- Access control list
Accessor ::= [PRIVATE 8] CHOICE
{
aAccessorGroup AccessorGroup,
aAccessorUser AccessorUser
}
AccessorGroup ::= SEQUENCE
{
aAccessorIdentity AccessorIdentity, -- Identity of the accessor
aMembersOfGroup SET OF AccessorIdentity, -- Members of the group
aACL AccessControlList -- Access control list
}
AccessorUser ::= SEQUENCE
{
aAccessorIdentity AccessorIdentity, -- Identity of the accessor
aAccessorConditions AccessorConditions OPTIONAL, -- Accessor conditions
aACL AccessControlList -- Access control list
}
AccessorIdentity ::= UUID -- accessor identity
AccessorConditions ::= SEQUENCE
{
aAccessConditionsBiometry AccessorConditionsBiometry OPTIONAL,
aAccessConditionsPIN AccessorConditionsPIN OPTIONAL,
aAccessConditionsTokens AccessorConditionsToken OPTIONAL,
aAccessConditionHostDomain AccessConditionHostDomain OPTIONAL
}
AccessorConditionsBiometry ::= [PRIVATE 9] BIT STRING
{
eReservedForFuture (0) -- Reserved for future usage
} (SIZE(32))
AccessorConditionsPIN ::= [PRIVATE 10] BIT STRING
{
ePinNumeric (0), -- The user shall present a numeric PIN
ePinPassword (1), -- The user shall present a password
ePinPattern (2) -- The user shall present a graphical pattern
} (SIZE(32))
AccessorConditionsToken ::= [PRIVATE 11] BIT STRING
{
eTokenCertificate (0) -- A token verification by using the certificate shall be performed
} (SIZE(32))
AccessConditionHostDomain ::= [PRIVATE 12] BOOLEAN
eAASAccessRight-RequiresSecurePipe AccessorRights ::= {eRight-Bit1 }
eAASAccessRight-Create AccessorRights ::= { eRight-Bit2 }
eAASAccessRight-Delete AccessorRights ::= { eRight-Bit3 }
eAASAccessRight-Update AccessorRights ::= { eRight-Bit4 }
eAASAccessRight-UpdateACL AccessorRights ::= { eRight-Bit5 }
eAASAccessRight-UpdateGroup AccessorRights ::= { eRight-Bit6 }
eAASAccessRight-UpdateCredentialPolicy AccessorRights ::= { eRight-Bit7 }
eAASAccessRight-UpdateCredentialStatus AccessorRights ::= { eRight-Bit8 }
/* Maximum size of each side of the entry panel for pattern */
maxEntryPanelDimension INTEGER ::= 10
/* Coordinate of point in pattern from the top-left corner, starting with index 1 */
PatternPoint ::= SEQUENCE
{
x INTEGER (1.. maxEntryPanelDimension), -- X coordinate
y INTEGER (1.. maxEntryPanelDimension) -- Y coordinate
}
AccessorCredentials ::= [PRIVATE 13] SEQUENCE
{
-- Credentials of type PIN
aPinNumericCredential [0] NumericString (SIZE(4..255)) OPTIONAL, -- Numeric PIN
aPinPasswordCredential [1] PrintableString (SIZE(4..255)) OPTIONAL, -- Password
aPinPatternCredential [2] SEQUENCE (SIZE(4..255)) OF PatternPoint OPTIONAL, -- Graphical pattern
-- Credentials for the token based verification
aCertificates [10] Certificates (SIZE(1..MAX)) OPTIONAL, -- Set of X.509 certificates of the accessor
-- Credentials of type host domain
aHostDomainCredential [20] SET OF UUID -- Set of SCL host domains
-- Credentials of type biometric: for future usage
}
PinNumericPolicy ::= SEQUENCE
{
aIsDisableForbidden BOOLEAN DEFAULT FALSE, -- Disabling forbidden
aMinSize INTEGER (4..255) DEFAULT 4, -- Minimum size of PIN
aMaxSize INTEGER (4..255) DEFAULT 255, -- Maximum size of PIN
aMaxAttempts INTEGER (0..255) DEFAULT 0 -- Maximum number of attempts
}
PinPasswordPolicy ::= SEQUENCE
{
aMinSize INTEGER (4..255) DEFAULT 4, -- Minimum length of password
aMaxSize INTEGER (4..255) DEFAULT 255, -- Maximum length of password
aRequiresLowerCaseLetter BOOLEAN DEFAULT FALSE, -- At least one lower case letter is required
aRequiresUpperCaseLetter BOOLEAN DEFAULT FALSE, -- At least one upper case letter is required
aRequiresNumber BOOLEAN DEFAULT FALSE, -- At least on numeric digit is required
aRequiresSymbol BOOLEAN DEFAULT FALSE, -- At least one special character is required
aMaxAttempts INTEGER (0..255) DEFAULT 0 -- Maximum number of attempts
}
PinPatternPolicy ::= SEQUENCE
{
aMinSize INTEGER (4..255) DEFAULT 4, -- Minimum number of points in pattern
aMaxSize INTEGER (4..255) DEFAULT 255, -- Maximum number of points in pattern
aEntryPanelMinSize INTEGER (3.. maxEntryPanelDimension) DEFAULT 3,
aSamePointMultipleTimes BOOLEAN DEFAULT FALSE, -- If a point can occur multiple times
aMaxAttempts INTEGER (0..255) DEFAULT 0 -- Maximum number of attempts
}
AccessorCredentialsPolicy ::= SEQUENCE
{
aPinNumericPolicy PinNumericPolicy OPTIONAL, -- Numeric PIN policy
aPinPasswordPolicy PinPasswordPolicy OPTIONAL, -- Password policy
aPinPatternPolicy PinPatternPolicy OPTIONAL -- Graphical pattern policy
}
AccessorCommonCredentialStatus ::= SEQUENCE
{
aIsDisabled BOOLEAN DEFAULT TRUE, -- indicates if credential is disabled
aRemainingAttempts INTEGER (0..255) OPTIONAL -- remaining number of attempts
}
PinNumericCredentialStatus ::= SEQUENCE
{
aCommonStatus AccessorCommonCredentialStatus
}
PinPasswordCredentialStatus ::= SEQUENCE
{
aCommonStatus AccessorCommonCredentialStatus
}
PinPatternCredentialStatus ::= SEQUENCE
{
aCommonStatus AccessorCommonCredentialStatus
}
AccessorCredentialsStatus ::= SEQUENCE
{
aPinNumericStatus PinNumericCredentialStatus OPTIONAL,
aPinPasswordStatus PinPasswordCredentialStatus OPTIONAL,
aPinPatternStatus PinPatternCredentialStatus OPTIONAL
}
AAS-GET-CAPABILITIES-Type ::= ENUMERATED
{
eGlobalAuthenticationService (0), -- retrieve user accessors available in the SSP host
eAccessorStatus (1) -- retrieve status related to the accessor authentication service gate
}
AAS-OP-GET-CAPABILITIES-Service-Command ::= [PRIVATE 16] SEQUENCE
{
aRequestType AAS-GET-CAPABILITIES-Type
}
AAS-OP-GET-CAPABILITIES-Service-Response-Parameter ::= CHOICE
{
aGlobalAuthenticationService SEQUENCE -- for aRequestType set to eGlobalAuthenticationService
{
aAASVersion VersionType, -- release of the AAS service
aAccessorList SET OF Accessor, -- List of accessors
aACL AccessControlList -- Access control list
},
aAccessorStatus SEQUENCE -- for aRequestType set to eAccessorStatus
{
aIsAuthenticated BOOLEAN, -- indicates if the accessor is authenticated
aAccessorConditions AccessorConditions, -- accessor conditions
aAccessorCredentialsStatus AccessorCredentialsStatus OPTIONAL, -- status of credentials of the accessor
aAccessorCredentialsPolicy AccessorCredentialsPolicy OPTIONAL -- policies for the credentials of the accessor
}
}
AAS-OP-GET-CAPABILITIES-Service-Response ::= [PRIVATE 16] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK,
aParameter AAS-OP-GET-CAPABILITIES-Service-Response-Parameter OPTIONAL
}
AAS-ADMIN-CREATE-ACCESSOR-Service-Command ::= [PRIVATE 17] SEQUENCE
{
aAccessor Accessor, -- Accessor to be created
aCredential AccessorCredentials OPTIONAL, -- Credentials for the accessor
aCredentialsPolicy AccessorCredentialsPolicy OPTIONAL, -- Policy for the provided accessors
aCredentialsStatus AccessorCredentialsStatus OPTIONAL -- Status of credentials
}
AAS-ADMIN-CREATE-ACCESSOR-Service-Response ::= [PRIVATE 17] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK
}
AAS-ADMIN-UPDATE-ACCESSOR-Service-Command ::= [PRIVATE 18] SEQUENCE
{
aAccessorIdentity AccessorIdentity, -- Identity of the accessor
aMembersOfGroup SET OF AccessorIdentity OPTIONAL, -- Members of the group
aACL AccessControlList OPTIONAL, -- Access control list
aSetAccessorConditions AccessorConditions OPTIONAL, -- Conditions to be set
aRemoveAccessorConditions AccessorConditions OPTIONAL, -- Conditions to be removed
aSetCredential AccessorCredentials OPTIONAL, -- Credentials to be set
aRemoveCredential AccessorConditions OPTIONAL, -- List of credentials to be removed
aCredentialsPolicy AccessorCredentialsPolicy OPTIONAL, -- Credential policy
aCredentialsStatus AccessorCredentialsStatus OPTIONAL -- Status of credentials
}
AAS-ADMIN-UPDATE-ACCESSOR-Service-Response ::= [PRIVATE 18] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK
}
AAS-ADMIN-DELETE-ACCESSOR-Service-Command ::= [PRIVATE 19] SEQUENCE
{
aAccessorIdentity AccessorIdentity -- Identity of the accessor to delete
}
AAS-ADMIN-DELETE-ACCESSOR-Service-Response ::= [PRIVATE 19] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK
}
AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command ::= [PRIVATE 22] SEQUENCE
{
aCredential CHOICE
{
aPinNumericCredential [10] NumericString, -- Numeric PIN
aPinPasswordCredential [11] PrintableString, -- Password
aPinPatternCredential [12] SEQUENCE (SIZE(4..255)) OF PatternPoint, -- Graphical pattern
aAccessorTokenCertificationPath [20] Certificates,
aHostDomainCredential [30] NULL
}
}
AAS-OP-AUTHENTICATE-ACCESSOR-Service-Response-Parameter ::= SEQUENCE
{
aCredentialsStatus AccessorCredentialsStatus OPTIONAL, -- Status of credentials after the command
aServiceTokenCertificationPath Certificates OPTIONAL -- Certification path of the token generated by the accessor authentication service
}
AAS-OP-AUTHENTICATE-ACCESSOR-Service-Response ::= [PRIVATE 22] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK,
aParameter AAS-OP-AUTHENTICATE-ACCESSOR-Service-Response-Parameter OPTIONAL
}
AAS-OP-ACCESS-SERVICE-Service-Command ::= [PRIVATE 20] SEQUENCE
{
aServiceIdentifier UUID, -- Identifier of the service gate
aUseSecurePipe BOOLEAN DEFAULT FALSE -- Indication of secure pipe is requested
}
AAS-OP-ACCESS-SERVICE-Service-Response-Parameter ::= SEQUENCE
{
aGateIdentifier UUID -- Identifier of the service gate
}
AAS-OP-ACCESS-SERVICE-Service-Response ::= [PRIVATE 20] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK,
aParameter AAS-OP-ACCESS-SERVICE-Service-Response-Parameter OPTIONAL
}
AAS-OP-GET-CHALLENGE-Service-Command ::= [PRIVATE 21] SEQUENCE
{
}
AAS-OP-GET-CHALLENGE-Service-Response-Parameter ::= SEQUENCE
{
aChallenge OCTET STRING (SIZE (16)),
aCertificates Certificates -- Certificates of the accessor authentication service
}
AAS-OP-GET-CHALLENGE-Service-Response ::= [PRIVATE 21] SEQUENCE
{
aAAS-Service-Response AAS-Service-Response DEFAULT eAAS-OK,
aParameter AAS-OP-GET-CHALLENGE-Service-Response-Parameter OPTIONAL
}
AAS-Service-Response ::= ENUMERATED
{
eAAS-OK (0), -- Operation successful
eAAS-E-CMD-PAR-UNKNOWN (2), -- Unknown parameters used for an operation
eAAS-E-NOK (3), -- Operation failed
eAAS-ACL-RULES-VIOLATIONS (14), -- The operation violates the ACL conditions
eAAS-NOT-AUTHENTICATED (15), -- The accessor is not authenticated
eAAS-POLICY-RULES-VIOLATIONS (16) -- The operation violates the credentials policy
}
/* Identity Gate */
URN-Description ::= SEQUENCE
{
aURN-Readable PrintableString, -- URN string used to compute UUID
aURN-UUID UUID -- UUID of the gate computed from aURN-Readable present in GATE_LIST
}
URN-Description-List ::= SEQUENCE OF URN-Description
FS-CONTROL-SERVICE-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aFS-ADMIN-GET-CAPABILITIES-Service-Command FS-ADMIN-GET-CAPABILITIES-Service-Command,
aFS-ADMIN-CREATE-NODE-Service-Command FS-ADMIN-CREATE-NODE-Service-Command,
aFS-ADMIN-DELETE-NODE-Service-Command FS-ADMIN-DELETE-NODE-Service-Command,
aFS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Command FS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Command,
aFS-OP-FILE-OPEN-Service-Command FS-OP-FILE-OPEN-Service-Command,
aFS-OP-FILE-CLOSE-Service-Command FS-OP-FILE-CLOSE-Service-Command,
aFS-OP-NODE-GET-INFO-Service-Command FS-OP-NODE-GET-INFO-Service-Command,
aFS-OP-FILE-READ-Service-Command FS-OP-FILE-READ-Service-Command,
aFS-OP-FILE-WRITE-Service-Command FS-OP-FILE-WRITE-Service-Command,
aFS-OP-FILE-GET-POSITION-Service-Command FS-OP-FILE-GET-POSITION-Service-Command
}
FS-CONTROL-SERVICE-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aFS-ADMIN-GET-CAPABILITIES-Service-Response FS-ADMIN-GET-CAPABILITIES-Service-Response,
aFS-ADMIN-CREATE-NODE-Service-Response FS-ADMIN-CREATE-NODE-Service-Response,
aFS-ADMIN-DELETE-NODE-Service-Response FS-ADMIN-DELETE-NODE-Service-Response,
aFS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Response FS-ADMIN-UPDATE-NODE-ATTRIBUTES-Service-Response,
aFS-OP-FILE-OPEN-Service-Response FS-OP-FILE-OPEN-Service-Response,
aFS-OP-FILE-CLOSE-Service-Response FS-OP-FILE-CLOSE-Service-Response,
aFS-OP-NODE-GET-INFO-Service-Response FS-OP-NODE-GET-INFO-Service-Response,
aFS-OP-FILE-READ-Service-Response FS-OP-FILE-READ-Service-Response,
aFS-OP-FILE-WRITE-Service-Response FS-OP-FILE-WRITE-Service-Response,
aFS-OP-FILE-GET-POSITION-Service-Response FS-OP-FILE-GET-POSITION-Service-Response
}
/* TCP Service: definitions */
IPV6Addr ::= OCTET STRING (SIZE(16))
IPV4Addr ::= OCTET STRING (SIZE(4))
IPAddress ::= CHOICE {aIPV4 IPV4Addr, aIPV6 IPV6Addr}
FQDN ::= UTF8String
ConnectionID ::= INTEGER (0..255)
TCP-CONTROL-SERVICE-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aTCP-REQUEST-CONNECTION-Service-Command TCP-REQUEST-CONNECTION-Service-Command,
aTCP-GET-STATUS-CONNECTION-Service-Command TCP-GET-STATUS-CONNECTION-Service-Command,
aTCP-CLOSE-CONNECTION-Service-Command TCP-CLOSE-CONNECTION-Service-Command
}
NetworkParameters ::= SEQUENCE
{
aBearerType INTEGER -- Bearer type
{
eDefaultBearer (0), -- Default Bearer, as defined in ETSI TS 102 223 [6], clause 8.52
eWWAN (1), -- WWAN Bearer
eWLAN (2) -- WLAN local breakout
} OPTIONAL,
aNetworkAccessName OCTET STRING OPTIONAL, -- Network Access Name
aUserLogin OCTET STRING OPTIONAL, -- User login for the network
aUserPassword OCTET STRING OPTIONAL -- User password for the network
}
TCP-REQUEST-CONNECTION-Service-Command ::= [PRIVATE 16] SEQUENCE
{
aConnectionMode [0] INTEGER
{
ePassiveLocal (0), -- TCP mode for LISTEN/ACCEPT for client local to the device only
ePassiveAny (1), -- TCP mode for LISTEN/ACCEPT for either local or remote client
eActive (2) -- TCP Mode as client for CONNECT
},
aDestinationAddress [1] CHOICE -- Destination address
{
aIP IPAddress, -- IP address
aFQDN FQDN -- Fully Qualified Domain Name of the server
} OPTIONAL,
aPortNumber [2] INTEGER(1..65535), -- Port number
aGateID [3] UUID, -- Gate identifier as defined in clause 8.2
aTimeout [4] INTEGER OPTIONAL, -- Time unit is second
aNetworkParameters [5] NetworkParameters OPTIONAL -- Network parameters
}
TCP-REQUEST-CONNECTION-Service-Response-Parameter ::= SEQUENCE
{
aConnectionID [0] ConnectionID -- Connection ID
}
TCP-REQUEST-CONNECTION-Service-Response ::= [PRIVATE 16] SEQUENCE
{
aTCP-Control-Service-Response TCP-Control-Service-Response DEFAULT eTCP-OK,
aParameter TCP-REQUEST-CONNECTION-Service-Response-Parameter OPTIONAL
}
TCP-CLOSE-CONNECTION-Service-Command ::= [PRIVATE 17] SEQUENCE
{
aConnectionID [0] ConnectionID -- Connection ID
}
TCP-CLOSE-CONNECTION-Service-Response-Parameter ::= SEQUENCE
{
aConnectionID [0] ConnectionID -- Connection ID
}
TCP-CLOSE-CONNECTION-Service-Response ::= [PRIVATE 17] SEQUENCE
{
aTCP-Control-Service-Response TCP-Control-Service-Response DEFAULT eTCP-OK,
aParameter TCP-CLOSE-CONNECTION-Service-Response-Parameter OPTIONAL
}
TCP-GET-STATUS-CONNECTION-Service-Command ::= [PRIVATE 18] SEQUENCE
{
aConnectionID [0] ConnectionID -- Connection ID
}
TCP-GET-STATUS-CONNECTION-Service-Response-Parameter ::= SEQUENCE
{
aConnectionID [0] ConnectionID, -- Connection ID
aStateOfConnection [1] INTEGER -- State of the connection
{
eLISTEN (0), -- TCP mode for LISTEN state (awaiting a connection request from a TCP client)
eESTABLSHMENT-IN-PROGRESS (1), -- TCP handshake is in progress
eESTABLISHED (2), -- TCP handshake has been completed
eCLOSED (3) -- TCP connection is CLOSED or not OPENED
}
}
TCP-GET-STATUS-CONNECTION-Service-Response ::= [PRIVATE 18] SEQUENCE
{
aTCP-Control-Service-Response TCP-Control-Service-Response DEFAULT eTCP-OK,
aParameter TCP-GET-STATUS-CONNECTION-Service-Response-Parameter OPTIONAL
}
TCP-CONTROL-SERVICE-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aTCP-REQUEST-CONNECTION-Service-Response TCP-REQUEST-CONNECTION-Service-Response,
aTCP-GET-STATUS-CONNECTION-Service-Response TCP-GET-STATUS-CONNECTION-Service-Response,
aTCP-CLOSE-CONNECTION-Service-Response TCP-CLOSE-CONNECTION-Service-Response
}
TCP-Control-Service-Response ::= ENUMERATED
{
eTCP-OK (0), -- no error
eTCP-E-CMD-PAR-UNKNOWN (2), -- unknown or illegal command parameter
eTCP-E-NOK (3) -- the command has failed
}
TCP-CONTROL-APPLICATION-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aTCP-ACCEPT-CONNECTION-Application-Command TCP-ACCEPT-CONNECTION-Application-Command
}
TCP-ACCEPT-CONNECTION-Application-Command ::= [PRIVATE 16] SEQUENCE
{
aConnectionID [0] ConnectionID, -- Connection ID
eSourceIP [1] IPAddress OPTIONAL, -- IP address of the incoming connection
aSourcePortNumber [2] INTEGER(1..65535) -- Source port of the incoming connection
}
TCP-ACCEPT-CONNECTION-Application-Response ::= [PRIVATE 16] SEQUENCE
{
aTCP-Control-Application-Response TCP-Control-Application-Response DEFAULT eTCP-OK
}
TCP-CONTROL-APPLICATION-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aTCP-REQUEST-CONNECTION-Application-Response TCP-ACCEPT-CONNECTION-Application-Response
}
TCP-Control-Application-Response ::= ENUMERATED
{
eTCP-OK (0), -- no error
eTCP-E-CMD-PAR-UNKNOWN (2), -- unknown or illegal command parameter
eTCP-E-NOK (3) -- the command has failed
}
TCP-CONTROL-APPLICATION-GATE-Events ::= [APPLICATION 0] CHOICE
{
aEVT-TCP-ERROR-Application-Event EVT-TCP-ERROR-Application-Event
}
EVT-TCP-ERROR-Application-Event ::= [PRIVATE 16] SEQUENCE
{
aConnectionID [0] ConnectionID, -- Connection ID
aErrorCode [1] INTEGER -- Error code
{
eUNREACHABLE (1),
eREDIRECTION (2),
eTIMEOUT (3),
eIP-HEADER-WRONG (4),
eACCESS-TECHNOLOGY-ERROR (5),
eTERMINAL-BUSY (6),
eNETWORK-BUSY (7),
eCALL-CONTROL-INTERACTION-ERROR (8),
eDNS-RESOLUTION-ERROR (9),
eLINK-DROPPED (10)
},
aErrorInfo [2] OCTET STRING (SIZE(2)) -- Additional details on the error
}
SocketID ::= INTEGER (0..255)
UDP-SERVICE-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aUDP-REQUEST-SOCKET-Command UDP-REQUEST-SOCKET-Command,
aUDP-CLOSE-SOCKET-Command UDP-CLOSE-SOCKET-Command
}
UDP-REQUEST-SOCKET-Command ::= [PRIVATE 16] SEQUENCE
{
aPortNumber [1] INTEGER(1..65535) OPTIONAL, -- UDP port on the terminal
aNetworkParameters [2] NetworkParameters OPTIONAL, -- Network parameters
aLocalOnly [3] BOOLEAN OPTIONAL -- if UDP datagrams from remote entities are allowed
}
UDP-REQUEST-SOCKET-Response-Parameter ::= SEQUENCE
{
aSocketID SocketID -- Socket identifier
}
UDP-REQUEST-SOCKET-Response ::= [PRIVATE 16] SEQUENCE
{
aUDP-Service-Response UDP-Service-Response DEFAULT eUDP-OK,
aParameter UDP-REQUEST-SOCKET-Response-Parameter OPTIONAL
}
UDP-CLOSE-SOCKET-Command ::= [PRIVATE 17] SEQUENCE
{
aSocketID SocketID -- Socket identifier
}
UDP-CLOSE-SOCKET-Response-Parameter ::= SEQUENCE
{
aSocketID SocketID -- Socket identifier
}
UDP-CLOSE-SOCKET-Response ::= [PRIVATE 17] SEQUENCE
{
aUDP-Service-Response UDP-Service-Response DEFAULT eUDP-OK,
aParameter UDP-CLOSE-SOCKET-Response-Parameter OPTIONAL
}
UDP-SERVICE-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aUDP-REQUEST-SOCKET-Response UDP-REQUEST-SOCKET-Response,
aUDP-CLOSE-SOCKET-Response UDP-CLOSE-SOCKET-Response
}
UDP-Service-Response ::= ENUMERATED
{
eUDP-OK (0), -- No Error
eUDP-E-CMD-PAR-UNKNOWN (2), -- Unknown or illegal command parameter
eUDP-E-NOK (3), -- the command has failed
eUDP-E-PORT-NOT-AVAILABLE (10) -- The UDP port is not available
}
UDP-SERVICE-GATE-Events ::= [APPLICATION 0] CHOICE
{
aEVT-UDP-DATAGRAM-OUT-Service-Event EVT-UDP-DATAGRAM-OUT-Service-Event
}
EVT-UDP-DATAGRAM-OUT-Service-Event ::= [PRIVATE 16] SEQUENCE
{
aSocketID SocketID, -- Socket identifier
aDestinationAddress CHOICE -- Destination address
{
aIP IPAddress, -- IP address
aFQDN FQDN -- Fully Qualified Domain Name of the server
},
aDestinationPortNumber INTEGER(1..65535), -- UDP port to send the UDP datagram
aData OCTET STRING (SIZE (1..65507)) -- Data to send
}
UDP-APPLICATION-GATE-Events ::= [APPLICATION 0] CHOICE
{
aEVT-UDP-DATAGRAM-IN-Application-Event EVT-UDP-DATAGRAM-IN-Application-Event,
aEVT-UDP-ERROR-Application-Event EVT-UDP-ERROR-Application-Event
}
EVT-UDP-DATAGRAM-IN-Application-Event ::= [PRIVATE 17] SEQUENCE
{
asocketID SocketID, -- Socket identifier
aSourceIP IPAddress, -- IP address of the incoming UDP datagram
aSourcePortNumber INTEGER(1..65535), -- UDP port of the incoming UDP datagram
aData OCTET STRING (SIZE (1..65507)) -- Received data
}
EVT-UDP-ERROR-Application-Event ::= [PRIVATE 16] SEQUENCE
{
aSocketID SocketID, -- Socket identifier
aErrorCode INTEGER -- Error code
{
eUNREACHABLE (1),
eREDIRECTION (2),
eIP-HEADER-WRONG (4),
eACCESS-TECHNOLOGY-ERROR (5),
eTERMINAL-BUSY (6),
eNETWORK-BUSY (7),
eCALL-CONTROL-INTERACTION-ERROR (8),
eDNS-RESOLUTION-ERROR (9),
eLINK-DROPPED (10)
},
aErrorInfo OCTET STRING (SIZE(2)) -- Additional error information
}
/* CRON service: definitions*/
CRON-ID ::= INTEGER (0..255)
/* CRON Service: commands */
CRON-SERVICE-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aCRON-REQUEST-TIMER-Command CRON-REQUEST-TIMER-Command,
aCRON-READ-DATE-Command CRON-READ-DATE-TIME-Command,
aCRON-KILL-TIMER-Command CRON-KILL-TIMER-Command,
aCRON-KILL-ALL-TIMERS-Command CRON-KILL-ALL-TIMERS-Command
}
CRON-REQUEST-TIMER-Command ::= [PRIVATE 16] SEQUENCE
{
aInitialNotificationDateTime CHOICE -- Time of the initial notification
{
aDateTimeAbsolute GeneralizedTime, -- Absolute date and time
aTimeRelative INTEGER (50..65535) -- Time in units of 100 milliseconds from the time of the request
},
aPeriod INTEGER (10..65535) OPTIONAL -- Interval of periodic notifications after the initial notification. The period is in units of 100 milliseconds
}
CRON-REQUEST-TIMER-Response-Parameter ::= SEQUENCE
{
aCRON-ID CRON-ID, -- CRON id
aPersistantOverPowerCycle BOOLEAN -- Indication of persistence across power cycles
}
CRON-REQUEST-TIMER-Response ::= [PRIVATE 16] SEQUENCE
{
aCRON-Service-Response CRON-Service-Response DEFAULT eCRON-OK,
aParameter CRON-REQUEST-TIMER-Response-Parameter OPTIONAL
}
CRON-READ-DATE-TIME-Command ::= [PRIVATE 17] SEQUENCE
{
}
CRON-READ-DATE-TIME-Response-Parameter ::= SEQUENCE
{
aDateTime GeneralizedTime
}
CRON-READ-DATE-TIME-Response ::= [PRIVATE 17] SEQUENCE
{
aCRON-Service-Response CRON-Service-Response DEFAULT eCRON-OK,
aParameter CRON-READ-DATE-TIME-Response-Parameter OPTIONAL
}
CRON-KILL-TIMER-Command ::= [PRIVATE 18] SEQUENCE
{
aCRON-ID CRON-ID -- CRON id
}
CRON-KILL-TIMER-Response ::= [PRIVATE 18] SEQUENCE
{
aCRON-Service-Response CRON-Service-Response DEFAULT eCRON-OK
}
CRON-KILL-ALL-TIMERS-Command ::= [PRIVATE 19] SEQUENCE
{
}
CRON-KILL-ALL-TIMERS-Response ::= SEQUENCE
{
aCRON-Service-Response CRON-Service-Response DEFAULT eCRON-OK
}
/* CRON Service: responses */
CRON-SERVICE-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aCRON-REQUEST-TIMER-Response CRON-REQUEST-TIMER-Response,
aCRON-READ-DATE-TIME-Response CRON-READ-DATE-TIME-Response,
aCRON-KILL-TIMER-Response CRON-KILL-TIMER-Response,
aCRON-KILL-ALL-TIMERS-Response CRON-KILL-ALL-TIMERS-Response
}
CRON-Service-Response ::= ENUMERATED
{
eCRON-OK (0), -- No Error
eCRON-E-CMD-PAR-UNKNOWN (2), -- Unknown or illegal command parameter
eCRON-E-NOK (3), -- the command has failed
eCRON-E-NO-ABSOLUTE-TIME (20) -- the terminal does not support the absolute time
}
/* CRON Service: events */
CRON-APPLICATION-GATE-Events ::= [APPLICATION 0] CHOICE
{
aCRON-ELAPSED-TIMER-Event CRON-ELAPSED-TIMER-Event
}
CRON-ELAPSED-TIMER-Event ::= [PRIVATE 16] SEQUENCE
{
aCRON-ID CRON-ID -- CRON id
}
AAS-SERVICE-GATE-Commands ::= [APPLICATION 2] CHOICE
{
aAAS-OP-GET-CAPABILITIES-Service-Command AAS-OP-GET-CAPABILITIES-Service-Command,
aAAS-ADMIN-CREATE-ACCESSOR-Service-Command AAS-ADMIN-CREATE-ACCESSOR-Service-Command,
aAAS-ADMIN-UPDATE-ACCESSOR-Service-Command AAS-ADMIN-UPDATE-ACCESSOR-Service-Command,
aAAS-ADMIN-DELETE-ACCESSOR-Service-Command AAS-ADMIN-DELETE-ACCESSOR-Service-Command,
aAAS-OP-ACCESS-SERVICE-Service-Command AAS-OP-ACCESS-SERVICE-Service-Command,
aAAS-OP-AUTHENTICATE-ACCESSOR-Service-Command AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command,
aAAS-OP-GET-CHALLENGE-Service-Command AAS-OP-GET-CHALLENGE-Service-Command
}
AAS-SERVICE-GATE-Responses ::= [APPLICATION 1] CHOICE
{
aAAS-OP-GET-CAPABILITIES-Service-Response AAS-OP-GET-CAPABILITIES-Service-Response,
aAAS-ADMIN-CREATE-ACCESSOR-Service-Response AAS-ADMIN-CREATE-ACCESSOR-Service-Response,
aAAS-ADMIN-UPDATE-ACCESSOR-Service-Response AAS-ADMIN-UPDATE-ACCESSOR-Service-Response,
aAAS-ADMIN-DELETE-ACCESSOR-Service-Response AAS-ADMIN-DELETE-ACCESSOR-Service-Response,
aAAS-OP-ACCESS-SERVICE-Service-Response AAS-OP-ACCESS-SERVICE-Service-Response,
aAAS-OP-AUTHENTICATE-ACCESSOR-Service-Response AAS-OP-AUTHENTICATE-ACCESSOR-Service-Response,
aAAS-OP-GET-CHALLENGE-Service-Response AAS-OP-GET-CHALLENGE-Service-Response
}
AuthenticationToken ::= SEQUENCE
{
tbsToken TBSToken,
signatureAlgorithm AlgorithmIdentifier,
signature ECDSA-Sig-Value
}
TBSToken ::= SEQUENCE
{
version [0] Version DEFAULT v1,
subjectPublicKeyInfo SubjectPublicKeyInfo,
aATK-Content ATK-Content,
extensions [8] Extensions OPTIONAL
}
Key-Size ::= INTEGER
{
e128 (0), -- 128 Bit Key size
e256 (1) -- 256 Bit Key size
}
StreamCipherIdentifier ::= INTEGER
{
aAES-CGM-StreamCipherIdentifier (0) -- AES GCM algorithm
}
ATK-Content ::= SEQUENCE
{
aChallenge OCTET STRING (SIZE (16)), -- Challenge
aKey-Size Key-Size,
aStreamCipherIdentifier StreamCipherIdentifier
}
id-ssp OBJECT IDENTIFIER ::= { itu-t (0) identified-organization (4) etsi (0) smart-secure-platform (3666) part1 (1) }
id-role OBJECT IDENTIFIER ::= { id-ssp role (1) }
id-role-aaa OBJECT IDENTIFIER ::= { id-role aaa (1) }
id-role-aas OBJECT IDENTIFIER ::= { id-role aas (2) }
END
ts_103666-1_general_characteristics-v15.6.0/figures/ 0000775 0000000 0000000 00000000000 14035147262 0022002 5 ustar 00root root 0000000 0000000 ts_103666-1_general_characteristics-v15.6.0/figures/README.md 0000664 0000000 0000000 00000001763 14035147262 0023270 0 ustar 00root root 0000000 0000000 # How to generate the figures
To be completed.
# Update of a figure
The following steps shall be followed to update a figure in TS 103 666-1:
1. Download the plantuml code of the figure to be updated.
2. Create a CR using the ETSI SCP template. The CR shall includes the plantuml code, using track changes to highlight the modifications. A CR may contain changes in two or more figures and may also contain changes in clauses of TS 103 666-1.
3. CR is accepted by SCP Plenary
4. Submit accepted plantuml code on Git repository. CR number and SCP document number shall be mentioned in the commit message.
5. Generate the updated figure using Plantuml tool
6. Include the updated figure in the new draft of TS 103 666-1 to be published.
7. Update annex in TS 103 666-1 with table of figures and corresponding Git links to plantuml code.
8. Start publication process of the new version of TS 103 666-1.
The same steps with the exception of step 1 shall be followed when a new figure is added to TS 103 666-1.
ts_103666-1_general_characteristics-v15.6.0/figures/figure_9.3.plantuml 0000664 0000000 0000000 00000002121 14035147262 0025426 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Accessor Authentication Service**" as aas
participant "**Accessor Authentication Application**" as aaa
autonumber
...
aas->aaa: aChallenge
note right
[eSK.AAA.ECKA,ePK.AAA.ECKA]=ECDHE()
Certification_PathATK_AAA=
GENTOKEN(Certification_PathAAA,eSK.AAA.ECKA,ePK.AAA.ECKA)
end note
...
aaa->aas: Certification_PathATK_AAA
activate aas
note left of aas
VERIFY_PATH(PK.CIAAA.ECDSA)[Certification_PathAAA]
[eSK.AAS.ECKA,ePK.AAS.ECKA]=ECDHE()
Certification_PathATK_AAS=
GENTOKEN(Certification_PathAAS,eSK.AAS.ECKA,ePK.AAS.ECKA)
ShS=ECKA-DH(eSK.AAS.ECKA,ePK.AAA.ECKA)
end note
activate aaa
aas-->aaa: Certification_PathATK_AAS
deactivate aaa
deactivate aas
aaa->aaa
activate aaa
note right of aaa
VERIFY_PATH(PK.CIAAS.ECDSA)[Certification_PathATK_AAS]
ShS=ECKA-DH(eSK.AAA.ECKA,ePK.AAS.ECKA)
end note
deactivate aaa
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_9.4.plantuml 0000664 0000000 0000000 00000001015 14035147262 0025430 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Accessor Authentication Service gate**" as aas
participant "**Accessor Authentication Application gate**" as aaa
autonumber
...
aaa->aas: AAS-OP-GET-CHALLENGE-Service-Command
aas-->aaa: eAAS-OK, aChallenge
...
aaa->aas: AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command (Certification_PathATK_AAA)
aas-->aaa: eAAS-OK, (Certification_PathATK.AAS)
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_D.1.plantuml 0000664 0000000 0000000 00000004366 14035147262 0025454 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nTCP Control Service Gate" as hosta_tcp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nTCP Control Application Gate" as hostb_tcp_ctr
participant "**Host A**\nTCP Data Service Gate" as hosta_tcp_data
participant "**Host B**\nTCP Data Application Gate" as hostb_tcp_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-REQUEST-CONNECTION-Service-Command[Parameters...] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
alt Successful connection
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_DATA,P11**]
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_DATA,P21**]
note right of hostb_tcp_data : TCP_DATA: Pipe Session Open on [P21,P11]
note left of hosta_tcp_data: TCP_DATA: Pipe Session Open on [P11,P21]
...
loop
hostb_tcp_data->hosta_tcp_data: TCP stream on P11
activate hosta_tcp_data
activate hostb_tcp_data
hosta_tcp_data->hostb_tcp_data: TCP stream on P21
deactivate hostb_tcp_data
deactivate hosta_tcp_data
hostb_adm->hosta_adm : EVT_ADM_RECEIVED
hosta_adm->hostb_adm : EVT_ADM_RECEIVED
hostb_adm->hosta_adm : EVT_ADM_CREDIT
hosta_adm->hostb_adm : EVT_ADM_CREDIT
end
...
hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P21**]
note right of hostb_tcp_data : TCP_DATA: Pipe Session closed on [P21,P11]
note left of hosta_tcp_data: TCP_DATA: Pipe Session closed on [P11,P21]
else connection failure
hosta_tcp_ctr->hostb_tcp_ctr: EVT-TCP-ERROR[CTX_ID0001, eUNREACHABLE]
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_D.2.plantuml 0000664 0000000 0000000 00000005050 14035147262 0025444 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nTCP Control Service Gate" as hosta_tcp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nTCP Control Application Gate" as hostb_tcp_ctr
participant "**Host A**\nTCP Data Service Gate" as hosta_tcp_data
participant "**Host B**\nTCP Data Application Gate" as hostb_tcp_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-REQUEST-CONNECTION-Service-Command[Parameters...] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
hosta_tcp_ctr->hostb_tcp_ctr: TCP-ACCEPT-CONNECTION-Application-Command[Parameters...] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hostb_tcp_ctr-->hosta_tcp_ctr: eTCP-OK [CTX_ID0001] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
alt Successful connection
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_DATA,P11**]
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_DATA,P21**]
note right of hostb_tcp_data : TCP_DATA: Pipe Session Open on [P21,P11]
note left of hosta_tcp_data: TCP_DATA: Pipe Session Open on [P11,P21]
...
loop
hostb_tcp_data->hosta_tcp_data: TCP stream on P11
activate hosta_tcp_data
activate hostb_tcp_data
hosta_tcp_data->hostb_tcp_data: TCP stream on P21
deactivate hostb_tcp_data
deactivate hosta_tcp_data
hostb_adm->hosta_adm : EVT_ADM_RECEIVED
hosta_adm->hostb_adm : EVT_ADM_RECEIVED
hostb_adm->hosta_adm : EVT_ADM_CREDIT
hosta_adm->hostb_adm : EVT_ADM_CREDIT
end
...
hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P21**]
note right of hostb_tcp_data : TCP_DATA: Pipe Session closed on [P21,P11]
note left of hosta_tcp_data: TCP_DATA: Pipe Session closed on [P11,P21]
else connection failure
hosta_tcp_ctr->hostb_tcp_ctr: EVT-TCP-ERROR-Application-Event[CTX_ID0001, eUNREACHABLE]
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_D.3.plantuml 0000664 0000000 0000000 00000002437 14035147262 0025453 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nTCP Control Service Gate" as hosta_tcp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nTCP Control Application Gate" as hostb_tcp_ctr
participant "**Host A**\nTCP Data Service Gate" as hosta_tcp_data
participant "**Host B**\nTCP Data Application Gate" as hostb_tcp_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-REQUEST-CONNECTION-Service-Command [Parameters...] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
hosta_tcp_ctr->hostb_tcp_ctr: EVT-TCP-ERROR-Application-Event[CTX_ID0001, eUNREACHABLE] on P10
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_D.4.plantuml 0000664 0000000 0000000 00000003342 14035147262 0025450 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nTCP Control Service Gate" as hosta_tcp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nTCP Control Application Gate" as hostb_tcp_ctr
participant "**Host A**\nTCP Data Service Gate" as hosta_tcp_data
participant "**Host B**\nTCP Data Application Gate" as hostb_tcp_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-REQUEST-CONNECTION-Service-Command [Parameters...] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-GET-STATUS-CONNECTION-Service-Command [CTX_ID0001] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001, eLISTEN] on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
...
hostb_tcp_ctr->hosta_tcp_ctr: TCP-CLOSE-CONNECTION-Servcie-Command [CTX_ID0001] on P10
activate hosta_tcp_ctr
activate hostb_tcp_ctr
hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK on P20
deactivate hostb_tcp_ctr
deactivate hosta_tcp_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_E.1.plantuml 0000664 0000000 0000000 00000002676 14035147262 0025457 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nUDP Control Service Gate" as hosta_udp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nUDP Control Application Gate" as hostb_udp_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**UDP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**UDP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_udp_ctr->hosta_udp_ctr: UDP-REQUEST-SOCKET-Command [Parameters...] on P10
activate hosta_udp_ctr
activate hostb_udp_ctr
hosta_udp_ctr-->hostb_udp_ctr: eUDP-OK [CTX_ID0001] on P20
deactivate hostb_udp_ctr
deactivate hosta_udp_ctr
...
alt Socket Opened Successfully
...
loop
hostb_udp_ctr->hosta_udp_ctr: EVT-DATAGRAM-OUT-Event [Parameters...] on P10
activate hosta_udp_ctr
activate hostb_udp_ctr
hosta_udp_ctr->hostb_udp_ctr: EVT-DATAGRAM-IN-Event [Parameters...] on P20
deactivate hostb_udp_ctr
deactivate hosta_udp_ctr
end
else connection failure
hosta_udp_ctr->hostb_udp_ctr: EVT-ERROR-MESSAGE[CTX_ID0001, eUNREACHABLE]
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_E.2.plantuml 0000664 0000000 0000000 00000002421 14035147262 0025444 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nUDP Control Service Gate" as hosta_udp_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nUDP Control Application Gate" as hostb_udp_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**UDP_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**UDP_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_udp_ctr->hosta_udp_ctr: UDP-REQUEST-SOCKET-Command [Parameters...] on P10
activate hosta_udp_ctr
activate hostb_udp_ctr
hosta_udp_ctr-->hostb_udp_ctr: eUDP-OK [CTX_ID0001] on P20
deactivate hostb_udp_ctr
deactivate hosta_udp_ctr
...
...
hostb_udp_ctr->hosta_udp_ctr: UDP-CLOSE-SOCKET-Command [CTX_ID0001] on P10
activate hosta_udp_ctr
activate hostb_udp_ctr
hosta_udp_ctr-->hostb_udp_ctr: eUDP-OK on P20
deactivate hostb_udp_ctr
deactivate hosta_udp_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_F.1.plantuml 0000664 0000000 0000000 00000002657 14035147262 0025457 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nCRON Service Gate" as hosta_cron
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**SSP Host**\nAdministration Gate" as hostb_adm
participant "**SSP Host**\nCRON Application Gate" as hostb_cron
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**CRON_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**CRON_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_cron->hosta_cron: CRON-REQUEST-TIMER-Command [Parameters...] on P10
activate hosta_cron
activate hostb_cron
hosta_cron-->hostb_cron: eCRON-OK [CTX_ID0001] on P20
deactivate hostb_cron
deactivate hosta_cron
...
hosta_cron->hostb_cron:CRON-ELAPSED-TIMER-Event
note left :Notification at a given date and time
...
opt
loop
hosta_cron->hostb_cron:CRON-ELAPSED-TIMER-Event
note left :Notification at a given date and time
...
end
end
...
hostb_cron->hosta_cron: CRON-KILL-TIMER-Command [CTX_ID0001] on P10
activate hosta_cron
activate hostb_cron
hosta_cron-->hostb_cron: eCRON-OK on P20
deactivate hostb_cron
deactivate hosta_cron
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_F.2.plantuml 0000664 0000000 0000000 00000002452 14035147262 0025451 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nCRON Control Service Gate" as hosta_cron_ctr
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**Host B**\nAdministration Gate" as hostb_adm
participant "**Host B**\nCRON Control Application Gate" as hostb_cron_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**CRON_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**CRON_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_cron_ctr->hosta_cron_ctr: CRON-REQUEST-TIMER-Command [Parameters...] on P10
activate hosta_cron_ctr
activate hostb_cron_ctr
hosta_cron_ctr-->hostb_cron_ctr: eCRON-OK [CTX_ID0001]on P20
deactivate hostb_cron_ctr
deactivate hosta_cron_ctr
...
...
hostb_cron_ctr->hosta_cron_ctr: CRON-KILL-TIMER-Command [CTX_ID0001] on P10
activate hosta_cron_ctr
activate hostb_cron_ctr
hosta_cron_ctr-->hostb_cron_ctr: eCRON-OK on P20
deactivate hostb_cron_ctr
deactivate hosta_cron_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_F.3.plantuml 0000664 0000000 0000000 00000001716 14035147262 0025454 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**Host A**\nCRON Service Gate" as hosta_cron
participant "**Host A**\nAdministration Gate" as hosta_adm
participant "**SSP Host**\nAdministration Gate" as hostb_adm
participant "**SSP Host**\nCRON Application Gate" as hostb_cron
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**CRON_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**CRON_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_cron->hosta_cron: CRON-READ-DATE-TIME-Command on P10
activate hosta_cron
activate hostb_cron
hosta_cron-->hostb_cron: eCRON-OK [Date] on P20
deactivate hostb_cron
deactivate hosta_cron
...
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_G.1.plantuml 0000664 0000000 0000000 00000003066 14035147262 0025453 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nFS Control Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nFS Control Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-OPEN-Service-Command [FS_ID0001, Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-READ-Service-Command [FS_ID0001, Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [Data] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-CLOSE-Service-Command [FS_ID0001] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_G.2.plantuml 0000664 0000000 0000000 00000003426 14035147262 0025454 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nFS Control Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nFS Control Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: FS-ADMIN-CREATE-NODE-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-OPEN-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-WRITE-Service-Command [FS_ID0001, Parameters, Data] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-CLOSE-Service-Command[FS_ID0001] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_G.3.plantuml 0000664 0000000 0000000 00000004703 14035147262 0025454 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nFS Control Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nFS Control Application Gate" as hostb_fs_ctr
participant "**SSP Host**\nFS Data Service Gate" as hosta_fs_data
participant "**Other Host**\nFS Data Application Gate" as hostb_fs_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-OPEN-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
alt Successfull connection
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_DATA,P11**]
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_DATA,P21**]
note right of hostb_fs_data : FS_DATA: Pipe Session Open on [P21,P11]
note left of hosta_fs_data: FS_DATA: Pipe Session Open on [P11,P21]
...
loop
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-WRITE-Service-Command [FS_ID0001, Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
hostb_fs_data->hosta_fs_data: FS Datastream on P11
hostb_adm<-hosta_adm : EVT_ADM_RECEIVED
hosta_adm->hostb_adm : EVT_ADM_CREDIT
end
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-CLOSE-Service-Command[FS_ID0001] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P21**,**P11**]
note right of hostb_fs_data : FS_DATA: Pipe Session closed on [P21,P11]
note left of hosta_fs_data: FD_DATA: Pipe Session closed on [P11,P21]
else connection failure
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_G.4.plantuml 0000664 0000000 0000000 00000004672 14035147262 0025462 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nFS Control Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nFS Control Application Gate" as hostb_fs_ctr
participant "**SSP Host**\nFS Data Service Gate" as hosta_fs_data
participant "**Other Host**\nFS Data Application Gate" as hostb_fs_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-OPEN-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
alt Successfull connection
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_DATA,P11**]
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_DATA,P21**]
note right of hostb_fs_data : FS_DATA: Pipe Session Open on [P21,P11]
note left of hosta_fs_data: FS_DATA: Pipe Session Open on [P11,P21]
...
loop
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-READ-Service-Command [FS_ID0001, Parameters] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
hostb_fs_data<-hosta_fs_data: FS Datastream on P11
hostb_adm->hosta_adm : EVT_ADM_RECEIVED
hosta_adm<-hostb_adm : EVT_ADM_CREDIT
end
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-CLOSE-Service-Command [FS_ID0001] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P21**,**P11**]
note right of hostb_fs_data : FS_DATA: Pipe Session closed on [P21,P11]
note left of hosta_fs_data: FD_DATA: Pipe Session closed on [P11,P21]
else connection failure
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_G.5.plantuml 0000664 0000000 0000000 00000003464 14035147262 0025461 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nFS Control Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nFS Control Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
hostb_adm->hosta_adm:EVT_ADM_BIND [**FS_CTR,P20**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**FS_CTR,P10**]
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-OPEN-Service-Command [Parameters] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [FS_ID0001] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-GET-POSITION-Service-Command [FS_ID0001,Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK [aCurrentOffset] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-READ-Service-Command [FS_ID0001,Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
hostb_fs_ctr->hosta_fs_ctr: FS-OP-FILE-CLOSE-Service-Command[FS_ID0001] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eFS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_J.1.plantuml 0000664 0000000 0000000 00000002315 14035147262 0025452 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nAccessor Authentication Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nAccessor Authentication Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
alt Successful authentication
hostb_fs_ctr->hosta_fs_ctr: AAS-ADMIN-CREATE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_J.2.plantuml 0000664 0000000 0000000 00000002314 14035147262 0025452 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nAccessor Authentication Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nAccessor Authentication Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
alt Successful authentication
hostb_fs_ctr->hosta_fs_ctr: AAS-ADMIN-DELETE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_J.3.plantuml 0000664 0000000 0000000 00000002314 14035147262 0025453 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nAccessor Authentication Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nAccessor Authentication Application Gate" as hostb_fs_ctr
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
note right : Pipe Session Open on [P20,P10]
note left : Pipe Session Open on [P10,P20]
...
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
alt Successful authentication
hostb_fs_ctr->hosta_fs_ctr: AAS-ADMIN-UPDATE-ACCESSOR-Service-Command [Parameters...] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eAAS-OK on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/figures/figure_J.4.plantuml 0000664 0000000 0000000 00000005503 14035147262 0025457 0 ustar 00root root 0000000 0000000 @startuml
skinparam monochrome true
skinparam defaultFontName Arial
skinparam classFontSize 10
skinparam sequenceBoxBorderColor #black
participant "**SSP Host**\nAccessor Authentication Service Gate" as hosta_fs_ctr
participant "**SSP Host**\nAdministration Gate" as hosta_adm
participant "**Other Host**\nAdministration Gate" as hostb_adm
participant "**Other Host**\nAccessor Authentication Application Gate" as hostb_fs_ctr
participant "**SSP Host**\nXXX Service Gate" as hosta_fs_data
participant "**Other Host**\nXXX Application Gate" as hostb_fs_data
autonumber
...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]...
...
opt
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-GET-CAPABILITIES-Service-Command [aRequestType] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eANY-OK [aGlobalAuthenticationService or aAccessorStatus] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
end
...
opt [requested for Token based authentication]
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-GET-CHALLENGE-Service-Command on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eANY-OK [aChallenge, aCertificates] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
end
...
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-AUTHENTICATE-ACCESSOR-Service-Command [aCredential] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eANY-OK [aCredentialsStatus or aServiceTokenCertificationPath] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
...
alt Successful authentication
hostb_fs_ctr->hosta_fs_ctr: AAS-OP-ACCESS-SERVICE-Service-Command [aServiceIdentifier, aUseSecurePipe] on P10
activate hosta_fs_ctr
activate hostb_fs_ctr
hosta_fs_ctr-->hostb_fs_ctr: eANY-OK [**aGate-Identifier**] on P20
deactivate hostb_fs_ctr
deactivate hosta_fs_ctr
hostb_adm->hosta_adm:EVT_ADM_BIND [**aGate-Identifier ,P21**]
hosta_adm->hostb_adm:EVT_ADM_BIND [**aGate-Identifier ,P11**]
note right of hostb_fs_data : ApplicationaGate-Identifier : Pipe Session Open on [P21,P11]
note left of hosta_fs_data: ServiceaGate-Identifier : Pipe Session Open on [P11,P21]
hosta_fs_data<-hostb_fs_data: XXX Operations [Parameters...] on P11
activate hosta_fs_data
activate hostb_fs_data
hostb_fs_data<--hosta_fs_data: eANY-OK [Parameters...] on P21
deactivate hostb_fs_data
deactivate hosta_fs_data
...
hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P11**]
note right of hostb_fs_data : ServiceaGate-Identifier : Pipe Session closed on [P21,P11]
note left of hosta_fs_data: ServiceaGate-Identifier : Pipe Session closed on [P11,P21]
end
@enduml
ts_103666-1_general_characteristics-v15.6.0/tools/ 0000775 0000000 0000000 00000000000 14035147262 0021476 5 ustar 00root root 0000000 0000000 ts_103666-1_general_characteristics-v15.6.0/tools/extract_asn1.py 0000664 0000000 0000000 00000001473 14035147262 0024451 0 ustar 00root root 0000000 0000000 # Script to extract complete ASN.1 code from ETSI TS 103 666 series of specifications
# Steps to run:
# 1. Download the specification as a word document and open it
# 2. In "view" menu, select draft or web layout (needed to removed page header and footers)
# 3. Save the document as a text file
# If requested, select "Text encoding: MS-DOS" and "End lines with: CR / LF"
# 4. Call the script: python extract_asn1.py ""
# The script generates ETSI_TS_103_666-1_asn1_definitions.asn
import sys
inFile = open(sys.argv[1])
outFile = open("ETSI_TS_103_666-1_asn1_definitions.asn", "w")
copy = False
for line in inFile:
if line.strip() == "-- ASN1START":
copy = True
elif line.strip() == "-- ASN1STOP":
copy = False
elif copy:
outFile.write(line)
inFile.close()
outFile.close()