Commit 70eb7b5f authored by naslundma's avatar naslundma Committed by canterburym
Browse files

Update file TS33128Payloads.asn

parent 77fbb743
Loading
Loading
Loading
Loading
+262 −1
Original line number Diff line number Diff line
@@ -1245,7 +1245,8 @@ AKMAAFID ::= SEQUENCE
UAStarParams ::= CHOICE
{
    tls12                 [1] TLS12UAStarParams,
    generic               [2] GenericUAStarParams
    generic               [2] GenericUAStarParams,
    tls13                 [3] TLS13UAStarParams
}

GenericUAStarParams ::= SEQUENCE
@@ -1301,6 +1302,266 @@ TLS12UAStarParams ::= SEQUENCE
    tLSClientExtensions   [19] OCTET STRING (SIZE(0..65535)) OPTIONAL
}

-- ===========================================
-- Specific UaStarParams for TLS 1.3 (RFC8446)
-- ===========================================

-- RFC8846, clause 4.2: Available handshake extension types.

TLS13ExtensionType ::= ENUMERATED
{
        serverName(0),                             
        maxFragmentLength(1),                     
        statusRequest(5),                          
        supportedGroups(10),                       
        signatureAlgorithms(13),                   
        useSRTP(14),                               
        heartbeat(15),                              
        applicationLayerProtocolNegotiation(16), 
        signedCertificateTimestamp(18),           
        clientCertificateType(19),                
        serverCertificateType(20),                
        padding(21),                                
        presharedKey(41),                         
        earlyData(42),                             
        supportedVersions(43),                     
        cookie(44),                                 
        pSKKeyExchangeModes(45),                 
        certificateAuthorities(47),                
        oIDFilters(48),                            
        postHandshakeAuth(49),                    
        signatureAlgorithmsCert(50),              
        keyShare(51)                              
}

-- RFC8846, clause 4.2: Extensions.
-- Carried as extension to the client's and server's Hello, 
-- or, in the server's EncryptedExtensions message. 
TLS13Extension ::= SEQUENCE
{
   extensionType [1] TLS13ExtensionType,
   extensionData [2] OCTET STRING (SIZE(0..65535))
}


-- RFC8446, clauses 4.1, 4.2, 7.1, and B.4: Cryptographic transforms

-- RFC8446, clauses 4.1.1 and 4.1.2: Ciphersuite
TLS13CipherSuite ::= CHOICE
{
    rfc8446               [1] TLSCipherSuite
    -- Extensible for possible future purposes
}

-- RFC8446, clause 7.1 and B.4: Key derivation function.
TLS13KDFAlgorithm ::= ENUMERATED
{
   rfc5869(1)     -- HKDF 
}

-- RFC8846, clause 4.2.11 and B.4: Hash algorithm.
TLS13PSKHashAlgorithm ::= ENUMERATED
{
   sha256(1),
   sha384(2),
   sha512(3)
}


–- RFC8446, clause 4.4.2: Certificates.

TLS13CertificateType ::= ENUMERATED 
{ 
   X509(0),
   RawPublicKey(2)
} 

TLS13CerificateEntry ::= SEQUENCE 
{   
   tLSCertificateType [1] TLS13CertificateType,
   tLSCertificateData [2] OCTET STRING (SIZE(1..16777215)),
   extensions         [3] SEQUENCE OF TLS13Extension OPTIONAL
}

-- This will typically correspond to a certificate chain.
TLS13Certificate ::= SEQUENCE 
{   
   tLSCertificateRequestContext [1] OCTET STRING (SIZE(0..255)),
   tLSCertificateList           [2] SEQUENCE OF TLS13CerificateEntry
}


-- RFC 8446, clause 4.2.9: Preshared key exchange mode.
TLS13PSKeyExchangeMode ::= ENUMERATED
{
    pSKKE(1), 
    pSKDHEKE(2)
}

-- RFC8446, clause 4.2.11: Preshared keys (PSKs).
-- PSKs obtained from AKMA use a specific prefix as part 
-- of the identity: "3GPP-AKMA" see TS 33.535 and 33.222.
TLS13PSKIdentity ::= SEQUENCE
{
    identity            [1] OCTET STRING (SIZE(1..65535)),
    obfuscatedTicketAge [2] INTEGER (0..4294967295)
}

TLS13OfferedPSK ::= SEQUENCE
{
    identity [1] TLS13PSKIdentity,
    binder   [2] OCTET STRING (SIZE(32..255)),
}

-- Actual PSK, either explicitly provisioned or derived from 
-- an earlier issued TLS ticket and a resumptionMasterSectret.
-- For AKMA, the PSK is the AKMA key K_AF.
TLS13PSKInfo ::= SEQUENCE
{
   pSKIdentity        [1] TLS13PSKIdentity,       
   pSKValue           [2] OCTET STRING, 
   pSKKeyExchangeMode [3] TLS13PSKeyExchangeMode,
   hashAlgorithm      [4] TLS13PSKHashAlgorithm
}



-- RFC 8446, clause 4.6.1: Tickets and resumption info.

TLS13NewSessionTicket ::= SEQUENCE
{
   ticketLifeTime [1] INTEGER (0..4294967295),
   ticketAgeAdd   [2] INTEGER (0..4294967295),
   ticketNonce    [3] OCTET STRING (SIZE(0..255)),
   ticket         [4] OCTET STRING (SIZE(1..65535)),
   extensions     [5] SEQUENCE OF TLS13Extension
}


TLS13ResumptionInfo ::= SEQUENCE 
{
   listOfTickets           [1] SEQUENCE OF TLS13NewSessionTicket,
   resumptionMasterSectret [2] OCTET STRING (SIZE(1..65535))
}


-- RFC8446, clause 7.1 and 4.2.8: TLS-internal leys
-- These keys/secrets are never directly used to encrypt 
-- data, and are therefore optional to provide as part of 
-- TLS13UAStarParams.

-- RFC8446, clause 4.2.8
-- Shared Diffie-Hellman secret: derived from client's 
-- and server's key shares (as included in extensions). 
-- Can later be extended by adding PQC-based secrets, 
-- see e.g. draft-ietf-tls-hybrid-design-10.
TLS13EstablishedSecrets ::= SEQUENCE
{
       dHE           [1] OCTET STRING (SIZE(1..65535)) OPTIONAL      
}


-- RFC8446, clause 7.1
-- The actual traffic encryption keys are derived from the respective
-- secret values below and a provided hashed handshake-message-transcript. 
TLS13EarlySecretInfo ::= SEQUENCE 
{
     earlySecretValue [1] OCTET STRING (SIZE(1..65535)),
     transcriptHash   [2] OCTET STRING (SIZE(1..65535)) 
     -– Hash(ClientHello)
}

TLS13HandshakeSecretInfo ::= SEQUENCE 
{
     handshakeSecretValue [1] OCTET STRING (SIZE(1..65535)),
     transcriptHash       [2] OCTET STRING (SIZE(1..65535)) 
     -– Hash(ClientHello..ServerHello)
}

-- RFC8446, clause 7.1
TLS13MasterSecretInfo ::= SEQUENCE 
{
     masterSecretValue [1] OCTET STRING (SIZE(1..65535)),
     transcriptHashS   [2] OCTET STRING (SIZE(1..65535)) 
     -– Hash(ClientHello..server Finished),
     transcriptHashC   [3] OCTET STRING (SIZE(1..65535)) 
     -– Hash(ClientHello..client Finished)

}


-- Complete TLS 1.3 cryptographic context, all inline
-- references below are to clauses of RFC8446.
TLS13UAStarParams ::= SEQUENCE
{
   -- Basic cryptographic information.  
   --
   -- The offeredPSKs, offeredPSKModes and selectedPSK 
   -- parameters are also provided as part of client and 
   -- server extensions below.
   --
   -- PSKs and key exchange modes offered by the client 
   -- clause 4.2.9, 4.2.11. When AKMA (or other CSP-provided)
   -- keys are used, at least one offered PSK and key exchange mode
   -- will always be present 
   offeredPSKs                      [1] SEQUENCE OF TLS13OfferedPSK, 
   offeredPSKKeyExchangeModes       [2] SEQUENCE OF TLS13PSKeyExchangeMode,
   -- The server-selected PSK, clause 4.2.11
   -- selectedPSKIdentity = j means the server selects j:th offered PSK.
   selectedPSKIdentity              [3] INTEGER (0..65535), 
   -- Cryptographic state: transforms and sequence numbers.
   kDFAlgorithm                     [4] TLS13KDFAlgorithm, -- clause 7.1.
   clientSupportedCipherSuites      [5] SEQUENCE OF TLS13CipherSuite OPTIONAL,
   selectedCipherSuite              [6] TLS13CipherSuite, -- clause 4.2 and B.4.
   clientSequenceNumber             [7] INTEGER, -- clause 5.3 
   serverSequenceNumber             [8] INTEGER, -- clause 5.3
   -- Handshake parameters, clause 4.1.2 and 4.1.3.
   clientRandom                     [9] OCTET STRING (SIZE(32)), 
   serverRandom                    [10] OCTET STRING (SIZE(32)), 
   legacySessionID                 [11] OCTET STRING (SIZE(0..32)), 
   -- Complete contents of handshake extensions, clause 4.2.
   tLSClientHelloExtensions        [12] SEQUENCE OF TLS13Extension,
   tLSServerHelloExtensions        [13] SEQUENCE OF TLS13Extension,
   -- Encrypted server extensions, clause 4.3.1 (provided in plaintext).
   tLSPlaintextEncryptedExtensions [14] SEQUENCE OF TLS13Extension OPTIONAL,
   -- Authentication related parameters, clause 4.4
   -- Certifcates are encrypted between client and server, 
   -- these are the unencrypted certificate(s).
   tLSPlaintextClientCertificate   [15] TLS13Certificate OPTIONAL,
   tLSPlaintextServerCertificate   [16] TLS13Certificate OPTIONAL,
   -- Session key information fields, clause 7.1
   earlySecret                     [17] TLS13EarlySecretInfo OPTIONAL,       
   binderKey                       [18] OCTET STRING (SIZE(1..65535)) OPTIONAL,
   -- The key used by the cipher suite to encrypt early data is
   -- derived from clientEarlyTrafficSecret as described in clause 7.3.
   clientEarlyTrafficSecret        [19] OCTET STRING (SIZE(1..65535)),
   earlyExporterMasterSecret       [20] OCTET STRING (SIZE(1..65535)),
   -- Establised shared key (from Diffie-Hellman or similar).
   sharedKey                       [21] TLS13EstablishedSecrets OPTIONAL,   
   handshakeSecret                 [22] TLS13HandshakeSecretInfo OPTIONAL,   
   -- The keys used by the cipher suite to encrypt the handshake are
   -- derived from client- and serverHandshakeTrafficSecret as 
   -- described in clause 7.3. 
   clientHandshakeTrafficSecret    [23] OCTET STRING (SIZE(1..65535)), 
   serverHandshakeTrafficSecret    [24] OCTET STRING (SIZE(1..65535)), 
   masterSecret                    [25] TLS13MasterSecretInfo OPTIONAL,       
   exporterMasterSectret           [26] OCTET STRING (SIZE(1..65535)),   
   -- The client and server application traffic secrets 
   -- can change value during an ongoing session due to 
   -- KeyUdpateRequest messages. The values to be provided below 
   -- refer to the currently valid ones when the IRI message is
   -- generated.
   -- The keys used by the cipher suite to encrypt the application 
   -- traffic are derived from client- and serverApplicationTrafficSecret 
   -- as described in clause 7.3.
   clientApplicationTrafficSecret  [27] OCTET STRING (SIZE(1..65535)), 
   serverApplicationTrafficSecret  [28] OCTET STRING (SIZE(1..65535)),
   -- Tickets for resumption, issued during current session, clause 4.6.2.
   tLSResumptionInfo               [29] TLS13ResumptionInfo OPTIONAL
}



KAF ::= OCTET STRING

KAKMA ::= OCTET STRING