blob: 2eac16551d2e22a8a7fbbbe0cae33dd0862dbcf9 [file] [log] [blame]
Harald Welte7a23af32011-02-07 21:24:26 +01001MAP-ST-DataTypes {
2 itu-t identified-organization (4) etsi (0) mobileDomain (0)
3 gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}
4
5DEFINITIONS
6IMPLICIT TAGS
7::=
8BEGIN
9
10EXPORTS
11 SecureTransportArg,
12 SecureTransportRes,
13 SecurityHeader,
14 ProtectedPayload
15;
16
17IMPORTS
18 IMSI
19
20FROM MAP-CommonDataTypes {
21 itu-t identified-organization (4) etsi (0) mobileDomain (0)
22 gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}
23;
24
25SecureTransportArg ::= SEQUENCE {
26 securityHeader SecurityHeader,
27 protectedPayload ProtectedPayload OPTIONAL
28 }
29 -- The protectedPayload carries the result of applying the security function
30 -- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
31 -- transported operation
32
33SecureTransportRes ::= SEQUENCE {
34 securityHeader SecurityHeader,
35 protectedPayload ProtectedPayload OPTIONAL
36 }
37 -- The protectedPayload carries the result of applying the security function
38 -- defined in 3GPP TS 33.200 to the encoding of the result of the securely
39 -- transported operation
40
41SecurityHeader ::= SEQUENCE {
42 securityParametersIndex SecurityParametersIndex,
43 originalComponentIdentifier OriginalComponentIdentifier,
44 initialisationVector InitialisationVector OPTIONAL,
45 ...}
46
47ProtectedPayload ::= OCTET STRING(SIZE(1.. 3438))
48 -- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
49 -- syntax value of the component parameter identified by the
50 -- originalComponentIdentifier.
51 -- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
52 -- the transfer syntax value of the component
53 -- parameter identified by the originalComponentIdentifier, followed by
54 -- the 32 bit integrity check value.
55 -- The integrity check value is the result of applying the hash algorithm
56 -- to the concatenation of the transfer syntax value of the SecurityHeader,
57 -- and the transfer syntax value of the component parameter.
58 -- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
59 -- payload carries the encrypted transfer syntax
60 -- value of the component parameter identified by the
61 -- originalComponentIdentifier, followed by the 32 bit integrity check value.
62 -- The integrity check value is the result of applying the hash algorithm
63 -- to the concatenation of the transfer syntax value of the SecurityHeader,
64 -- and the encrypted transfer syntax value of the component parameter.
65 -- See 33.200.
66 -- The length of the protectedPayload is adjusted according to the capabilities of
67 -- the lower protocol layers
68
69SecurityParametersIndex ::= OCTET STRING (SIZE(4))
70
71InitialisationVector ::= OCTET STRING (SIZE(14))
72 -- the internal structure is defined as follows:
73 -- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
74 -- and indicates the number of intervals of 100 milliseconds
75 -- elapsed since 1st January 2002, 0:00:00 UTC
76 -- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
77 -- within the PLMN. It is the entity's E.164 number without CC and
78 -- NDC. It is TBCD-coded, padded with zeros.
79 -- Octets 11 to 14: PROP. This 32 bit value is used to make the
80 -- InitialisationVector unique within the same TVP period.
81 -- The content is not standardized.
82
83
84OriginalComponentIdentifier ::= CHOICE {
85 operationCode [0] OperationCode,
86 errorCode [1] ErrorCode,
87 userInfo [2] NULL}
88
89OperationCode ::= CHOICE {
90 localValue INTEGER,
91 globalValue OBJECT IDENTIFIER}
92
93ErrorCode ::= CHOICE {
94 localValue INTEGER,
95 globalValue OBJECT IDENTIFIER}
96
97END
98