spkm, rfc2025
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14155 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
240
lib/gssapi/krb5/spkm.asn1
Normal file
240
lib/gssapi/krb5/spkm.asn1
Normal file
@@ -0,0 +1,240 @@
|
||||
-- from rfc2025
|
||||
-- $Id$
|
||||
|
||||
SpkmGssTokens DEFINITIONS ::=
|
||||
BEGIN
|
||||
|
||||
IMPORTS AlgorithmIdentifier, Validity,
|
||||
Attribute, Certificate, CertificateList, CertificatePair, Name
|
||||
FROM rfc2459
|
||||
AuthorizationData FROM krb5;
|
||||
|
||||
SPKM-REQ ::= SEQUENCE {
|
||||
requestToken REQ-TOKEN,
|
||||
certif-data [0] CertificationData OPTIONAL,
|
||||
auth-data [1] AuthorizationData OPTIONAL
|
||||
}
|
||||
|
||||
|
||||
CertificationData ::= SEQUENCE {
|
||||
certificationPath [0] CertificationPath OPTIONAL,
|
||||
certificateRevocationList [1] CertificateList OPTIONAL
|
||||
} -- at least one of the above shall be present
|
||||
|
||||
|
||||
CertificationPath ::= SEQUENCE {
|
||||
userKeyId [0] OCTET STRING OPTIONAL,
|
||||
userCertif [1] Certificate OPTIONAL,
|
||||
verifKeyId [2] OCTET STRING OPTIONAL,
|
||||
userVerifCertif [3] Certificate OPTIONAL,
|
||||
theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL
|
||||
} -- Presence of [2] or [3] implies that [0] or [1] must also be
|
||||
-- present. Presence of [4] implies that at least one of [0], [1],
|
||||
-- [2], and [3] must also be present.
|
||||
|
||||
REQ-TOKEN ::= SEQUENCE {
|
||||
req-contents Req-contents,
|
||||
algId AlgorithmIdentifier,
|
||||
req-integrity Integrity -- "token" is Req-contents
|
||||
}
|
||||
|
||||
Integrity ::= BIT STRING
|
||||
-- If corresponding algId specifies a signing algorithm,
|
||||
-- "Integrity" holds the result of applying the signing procedure
|
||||
-- specified in algId to the BER-encoded octet string which results
|
||||
-- from applying the hashing procedure (also specified in algId) to
|
||||
-- the DER-encoded octets of "token".
|
||||
-- Alternatively, if corresponding algId specifies a MACing
|
||||
-- algorithm, "Integrity" holds the result of applying the MACing
|
||||
-- procedure specified in algId to the DER-encoded octets of
|
||||
-- "token"
|
||||
|
||||
Req-contents ::= SEQUENCE {
|
||||
tok-id INTEGER --(256)--, -- shall contain 0100 (hex)
|
||||
context-id Random-Integer,
|
||||
pvno BIT STRING,
|
||||
timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
|
||||
randSrc Random-Integer,
|
||||
targ-name Name,
|
||||
src-name [0] Name OPTIONAL,
|
||||
req-data Context-Data,
|
||||
validity [1] Validity OPTIONAL,
|
||||
key-estb-set Key-Estb-Algs,
|
||||
key-estb-req BIT STRING OPTIONAL,
|
||||
key-src-bind OCTET STRING OPTIONAL
|
||||
-- This field must be present for the case of SPKM-2
|
||||
-- unilateral authen. if the K-ALG in use does not provide
|
||||
-- such a binding (but is optional for all other cases).
|
||||
-- The octet string holds the result of applying the
|
||||
-- mandatory hashing procedure (in MANDATORY I-ALG;
|
||||
-- see Section 2.1) as follows: MD5(src || context_key),
|
||||
-- where "src" is the DER-encoded octets of src-name,
|
||||
-- "context-key" is the symmetric key (i.e., the
|
||||
-- unprotected version of what is transmitted in
|
||||
-- key-estb-req), and "||" is the concatenation operation.
|
||||
}
|
||||
|
||||
Random-Integer ::= BIT STRING
|
||||
|
||||
Context-Data ::= SEQUENCE {
|
||||
channelId ChannelId OPTIONAL,
|
||||
seq-number INTEGER OPTIONAL,
|
||||
options Options,
|
||||
conf-alg Conf-Algs,
|
||||
intg-alg Intg-Algs,
|
||||
owf-alg OWF-Algs
|
||||
}
|
||||
|
||||
ChannelId ::= OCTET STRING
|
||||
|
||||
Options ::= BIT STRING {
|
||||
delegation-state (0),
|
||||
mutual-state (1),
|
||||
replay-det-state (2),
|
||||
sequence-state (3),
|
||||
conf-avail (4),
|
||||
integ-avail (5),
|
||||
target-certif-data-required (6)
|
||||
}
|
||||
|
||||
Conf-Algs ::= CHOICE {
|
||||
algs [0] SEQUENCE OF AlgorithmIdentifier,
|
||||
null [1] NULL
|
||||
}
|
||||
|
||||
Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
|
||||
SPKM-REP-TI ::= SEQUENCE {
|
||||
responseToken REP-TI-TOKEN,
|
||||
certif-data CertificationData OPTIONAL
|
||||
-- present if target-certif-data-required option was
|
||||
} -- set to TRUE in SPKM-REQ
|
||||
|
||||
REP-TI-TOKEN ::= SEQUENCE {
|
||||
rep-ti-contents Rep-ti-contents,
|
||||
algId AlgorithmIdentifier,
|
||||
rep-ti-integ Integrity -- "token" is Rep-ti-contents
|
||||
}
|
||||
|
||||
Rep-ti-contents ::= SEQUENCE {
|
||||
tok-id INTEGER --(512)--, -- shall contain 0200 (hex)
|
||||
context-id Random-Integer,
|
||||
pvno [0] BIT STRING OPTIONAL,
|
||||
timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
|
||||
randTarg Random-Integer,
|
||||
src-name [1] Name OPTIONAL,
|
||||
targ-name Name,
|
||||
randSrc Random-Integer,
|
||||
rep-data Context-Data,
|
||||
validity [2] Validity OPTIONAL,
|
||||
key-estb-id AlgorithmIdentifier OPTIONAL,
|
||||
key-estb-str BIT STRING OPTIONAL
|
||||
}
|
||||
|
||||
SPKM-REP-IT ::= SEQUENCE {
|
||||
responseToken REP-IT-TOKEN,
|
||||
algId AlgorithmIdentifier,
|
||||
rep-it-integ Integrity -- "token" is REP-IT-TOKEN
|
||||
}
|
||||
|
||||
REP-IT-TOKEN ::= SEQUENCE {
|
||||
tok-id INTEGER --(768)--, -- shall contain 0300 (hex)
|
||||
context-id Random-Integer,
|
||||
randSrc Random-Integer,
|
||||
randTarg Random-Integer,
|
||||
targ-name Name,
|
||||
src-name Name OPTIONAL,
|
||||
key-estb-rep BIT STRING OPTIONAL
|
||||
}
|
||||
|
||||
SPKM-ERROR ::= SEQUENCE {
|
||||
errorToken ERROR-TOKEN,
|
||||
algId AlgorithmIdentifier,
|
||||
integrity Integrity -- "token" is ERROR-TOKEN
|
||||
}
|
||||
|
||||
ERROR-TOKEN ::= SEQUENCE {
|
||||
tok-id INTEGER --(1024)--, -- shall contain 0400 (hex)
|
||||
context-id Random-Integer
|
||||
}
|
||||
|
||||
SPKM-MIC ::= SEQUENCE {
|
||||
mic-header Mic-Header,
|
||||
int-cksum BIT STRING
|
||||
}
|
||||
|
||||
Mic-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(257)--, -- shall contain 0101 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
snd-seq [1] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
SeqNum ::= SEQUENCE {
|
||||
num INTEGER,
|
||||
dir-ind BOOLEAN
|
||||
}
|
||||
|
||||
SPKM-WRAP ::= SEQUENCE {
|
||||
wrap-header Wrap-Header,
|
||||
wrap-body Wrap-Body
|
||||
}
|
||||
|
||||
Wrap-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(513)--, -- shall contain 0201 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
conf-alg [1] Conf-Alg OPTIONAL,
|
||||
snd-seq [2] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
Wrap-Body ::= SEQUENCE {
|
||||
int-cksum BIT STRING,
|
||||
data BIT STRING
|
||||
}
|
||||
|
||||
Conf-Alg ::= CHOICE {
|
||||
algId [0] AlgorithmIdentifier,
|
||||
null [1] NULL
|
||||
}
|
||||
|
||||
|
||||
SPKM-DEL ::= SEQUENCE {
|
||||
del-header Del-Header,
|
||||
int-cksum BIT STRING
|
||||
}
|
||||
|
||||
Del-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(769)--, -- shall contain 0301 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
snd-seq [1] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
|
||||
-- other types --
|
||||
|
||||
MechType ::= OBJECT IDENTIFIER
|
||||
|
||||
SPKMInnerContextToken ::= CHOICE {
|
||||
req [0] SPKM-REQ,
|
||||
rep-ti [1] SPKM-REP-TI,
|
||||
rep-it [2] SPKM-REP-IT,
|
||||
error [3] SPKM-ERROR,
|
||||
mic [4] SPKM-MIC,
|
||||
wrap [5] SPKM-WRAP,
|
||||
del [6] SPKM-DEL
|
||||
}
|
||||
|
||||
InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE {
|
||||
thisMech MechType,
|
||||
innerContextToken SPKMInnerContextToken
|
||||
} -- when thisMech is SPKM-1 or SPKM-2
|
||||
|
||||
|
||||
END
|
240
lib/gssapi/spkm.asn1
Normal file
240
lib/gssapi/spkm.asn1
Normal file
@@ -0,0 +1,240 @@
|
||||
-- from rfc2025
|
||||
-- $Id$
|
||||
|
||||
SpkmGssTokens DEFINITIONS ::=
|
||||
BEGIN
|
||||
|
||||
IMPORTS AlgorithmIdentifier, Validity,
|
||||
Attribute, Certificate, CertificateList, CertificatePair, Name
|
||||
FROM rfc2459
|
||||
AuthorizationData FROM krb5;
|
||||
|
||||
SPKM-REQ ::= SEQUENCE {
|
||||
requestToken REQ-TOKEN,
|
||||
certif-data [0] CertificationData OPTIONAL,
|
||||
auth-data [1] AuthorizationData OPTIONAL
|
||||
}
|
||||
|
||||
|
||||
CertificationData ::= SEQUENCE {
|
||||
certificationPath [0] CertificationPath OPTIONAL,
|
||||
certificateRevocationList [1] CertificateList OPTIONAL
|
||||
} -- at least one of the above shall be present
|
||||
|
||||
|
||||
CertificationPath ::= SEQUENCE {
|
||||
userKeyId [0] OCTET STRING OPTIONAL,
|
||||
userCertif [1] Certificate OPTIONAL,
|
||||
verifKeyId [2] OCTET STRING OPTIONAL,
|
||||
userVerifCertif [3] Certificate OPTIONAL,
|
||||
theCACertificates [4] SEQUENCE OF CertificatePair OPTIONAL
|
||||
} -- Presence of [2] or [3] implies that [0] or [1] must also be
|
||||
-- present. Presence of [4] implies that at least one of [0], [1],
|
||||
-- [2], and [3] must also be present.
|
||||
|
||||
REQ-TOKEN ::= SEQUENCE {
|
||||
req-contents Req-contents,
|
||||
algId AlgorithmIdentifier,
|
||||
req-integrity Integrity -- "token" is Req-contents
|
||||
}
|
||||
|
||||
Integrity ::= BIT STRING
|
||||
-- If corresponding algId specifies a signing algorithm,
|
||||
-- "Integrity" holds the result of applying the signing procedure
|
||||
-- specified in algId to the BER-encoded octet string which results
|
||||
-- from applying the hashing procedure (also specified in algId) to
|
||||
-- the DER-encoded octets of "token".
|
||||
-- Alternatively, if corresponding algId specifies a MACing
|
||||
-- algorithm, "Integrity" holds the result of applying the MACing
|
||||
-- procedure specified in algId to the DER-encoded octets of
|
||||
-- "token"
|
||||
|
||||
Req-contents ::= SEQUENCE {
|
||||
tok-id INTEGER --(256)--, -- shall contain 0100 (hex)
|
||||
context-id Random-Integer,
|
||||
pvno BIT STRING,
|
||||
timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
|
||||
randSrc Random-Integer,
|
||||
targ-name Name,
|
||||
src-name [0] Name OPTIONAL,
|
||||
req-data Context-Data,
|
||||
validity [1] Validity OPTIONAL,
|
||||
key-estb-set Key-Estb-Algs,
|
||||
key-estb-req BIT STRING OPTIONAL,
|
||||
key-src-bind OCTET STRING OPTIONAL
|
||||
-- This field must be present for the case of SPKM-2
|
||||
-- unilateral authen. if the K-ALG in use does not provide
|
||||
-- such a binding (but is optional for all other cases).
|
||||
-- The octet string holds the result of applying the
|
||||
-- mandatory hashing procedure (in MANDATORY I-ALG;
|
||||
-- see Section 2.1) as follows: MD5(src || context_key),
|
||||
-- where "src" is the DER-encoded octets of src-name,
|
||||
-- "context-key" is the symmetric key (i.e., the
|
||||
-- unprotected version of what is transmitted in
|
||||
-- key-estb-req), and "||" is the concatenation operation.
|
||||
}
|
||||
|
||||
Random-Integer ::= BIT STRING
|
||||
|
||||
Context-Data ::= SEQUENCE {
|
||||
channelId ChannelId OPTIONAL,
|
||||
seq-number INTEGER OPTIONAL,
|
||||
options Options,
|
||||
conf-alg Conf-Algs,
|
||||
intg-alg Intg-Algs,
|
||||
owf-alg OWF-Algs
|
||||
}
|
||||
|
||||
ChannelId ::= OCTET STRING
|
||||
|
||||
Options ::= BIT STRING {
|
||||
delegation-state (0),
|
||||
mutual-state (1),
|
||||
replay-det-state (2),
|
||||
sequence-state (3),
|
||||
conf-avail (4),
|
||||
integ-avail (5),
|
||||
target-certif-data-required (6)
|
||||
}
|
||||
|
||||
Conf-Algs ::= CHOICE {
|
||||
algs [0] SEQUENCE OF AlgorithmIdentifier,
|
||||
null [1] NULL
|
||||
}
|
||||
|
||||
Intg-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
OWF-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
Key-Estb-Algs ::= SEQUENCE OF AlgorithmIdentifier
|
||||
|
||||
|
||||
SPKM-REP-TI ::= SEQUENCE {
|
||||
responseToken REP-TI-TOKEN,
|
||||
certif-data CertificationData OPTIONAL
|
||||
-- present if target-certif-data-required option was
|
||||
} -- set to TRUE in SPKM-REQ
|
||||
|
||||
REP-TI-TOKEN ::= SEQUENCE {
|
||||
rep-ti-contents Rep-ti-contents,
|
||||
algId AlgorithmIdentifier,
|
||||
rep-ti-integ Integrity -- "token" is Rep-ti-contents
|
||||
}
|
||||
|
||||
Rep-ti-contents ::= SEQUENCE {
|
||||
tok-id INTEGER --(512)--, -- shall contain 0200 (hex)
|
||||
context-id Random-Integer,
|
||||
pvno [0] BIT STRING OPTIONAL,
|
||||
timestamp UTCTime OPTIONAL, -- mandatory for SPKM-2
|
||||
randTarg Random-Integer,
|
||||
src-name [1] Name OPTIONAL,
|
||||
targ-name Name,
|
||||
randSrc Random-Integer,
|
||||
rep-data Context-Data,
|
||||
validity [2] Validity OPTIONAL,
|
||||
key-estb-id AlgorithmIdentifier OPTIONAL,
|
||||
key-estb-str BIT STRING OPTIONAL
|
||||
}
|
||||
|
||||
SPKM-REP-IT ::= SEQUENCE {
|
||||
responseToken REP-IT-TOKEN,
|
||||
algId AlgorithmIdentifier,
|
||||
rep-it-integ Integrity -- "token" is REP-IT-TOKEN
|
||||
}
|
||||
|
||||
REP-IT-TOKEN ::= SEQUENCE {
|
||||
tok-id INTEGER --(768)--, -- shall contain 0300 (hex)
|
||||
context-id Random-Integer,
|
||||
randSrc Random-Integer,
|
||||
randTarg Random-Integer,
|
||||
targ-name Name,
|
||||
src-name Name OPTIONAL,
|
||||
key-estb-rep BIT STRING OPTIONAL
|
||||
}
|
||||
|
||||
SPKM-ERROR ::= SEQUENCE {
|
||||
errorToken ERROR-TOKEN,
|
||||
algId AlgorithmIdentifier,
|
||||
integrity Integrity -- "token" is ERROR-TOKEN
|
||||
}
|
||||
|
||||
ERROR-TOKEN ::= SEQUENCE {
|
||||
tok-id INTEGER --(1024)--, -- shall contain 0400 (hex)
|
||||
context-id Random-Integer
|
||||
}
|
||||
|
||||
SPKM-MIC ::= SEQUENCE {
|
||||
mic-header Mic-Header,
|
||||
int-cksum BIT STRING
|
||||
}
|
||||
|
||||
Mic-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(257)--, -- shall contain 0101 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
snd-seq [1] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
SeqNum ::= SEQUENCE {
|
||||
num INTEGER,
|
||||
dir-ind BOOLEAN
|
||||
}
|
||||
|
||||
SPKM-WRAP ::= SEQUENCE {
|
||||
wrap-header Wrap-Header,
|
||||
wrap-body Wrap-Body
|
||||
}
|
||||
|
||||
Wrap-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(513)--, -- shall contain 0201 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
conf-alg [1] Conf-Alg OPTIONAL,
|
||||
snd-seq [2] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
Wrap-Body ::= SEQUENCE {
|
||||
int-cksum BIT STRING,
|
||||
data BIT STRING
|
||||
}
|
||||
|
||||
Conf-Alg ::= CHOICE {
|
||||
algId [0] AlgorithmIdentifier,
|
||||
null [1] NULL
|
||||
}
|
||||
|
||||
|
||||
SPKM-DEL ::= SEQUENCE {
|
||||
del-header Del-Header,
|
||||
int-cksum BIT STRING
|
||||
}
|
||||
|
||||
Del-Header ::= SEQUENCE {
|
||||
tok-id INTEGER --(769)--, -- shall contain 0301 (hex)
|
||||
context-id Random-Integer,
|
||||
int-alg [0] AlgorithmIdentifier OPTIONAL,
|
||||
snd-seq [1] SeqNum OPTIONAL
|
||||
}
|
||||
|
||||
|
||||
-- other types --
|
||||
|
||||
MechType ::= OBJECT IDENTIFIER
|
||||
|
||||
SPKMInnerContextToken ::= CHOICE {
|
||||
req [0] SPKM-REQ,
|
||||
rep-ti [1] SPKM-REP-TI,
|
||||
rep-it [2] SPKM-REP-IT,
|
||||
error [3] SPKM-ERROR,
|
||||
mic [4] SPKM-MIC,
|
||||
wrap [5] SPKM-WRAP,
|
||||
del [6] SPKM-DEL
|
||||
}
|
||||
|
||||
InitialContextToken ::= [APPLICATION 0] IMPLICIT SEQUENCE {
|
||||
thisMech MechType,
|
||||
innerContextToken SPKMInnerContextToken
|
||||
} -- when thisMech is SPKM-1 or SPKM-2
|
||||
|
||||
|
||||
END
|
Reference in New Issue
Block a user