Commit 495734fa authored by courbon's avatar courbon Committed by canterburym
Browse files

TS 33.128 CR0258 - STIR SHAKEN Stage 3

parent 33c5188b
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
@@ -169,6 +169,9 @@ XIRIEvent ::= CHOICE
    n9HRPDUSessionInfo                                  [100] N9HRPDUSessionInfo,
    s8HRBearerInfo                                      [101] S8HRBearerInfo,

    -- STIR SHAKEN and RCD/eCNAM Events, see clause 7.X.2
    sTIRSHAKENSignatureGeneration                       [2581] STIRSHAKENSignatureGeneration,
    sTIRSHAKENSignatureValidation                       [2582] STIRSHAKENSignatureValidation,
    -- IMS events, see clause 7.X.4.2
    iMSMessage                                          [2721] IMSMessage,
    startOfInterceptionForActiveIMSSession              [2722] StartOfInterceptionForActiveIMSSession,
@@ -336,6 +339,10 @@ IRIEvent ::= CHOICE
    -- tag 100 is reserved because there is no equivalent n9HRPDUSessionInfo in IRIEvent.
    -- tag 101 is reserved because there is no equivalent S8HRBearerInfo in IRIEvent.
    
    -- STIR SHAKEN and RCD/eCNAM Events, see clause 7.X.3
    sTIRSHAKENSignatureGeneration                       [2581] STIRSHAKENSignatureGeneration,
    sTIRSHAKENSignatureValidation                       [2582] STIRSHAKENSignatureValidation,

    -- IMS events, see clause 7.X.4.2
    iMSMessage                                          [2721] IMSMessage,
    startOfInterceptionForActiveIMSSession              [2722] StartOfInterceptionForActiveIMSSession,
@@ -2846,6 +2853,109 @@ SessionDirection ::= ENUMERATED

HeaderOnlyIndication ::= BOOLEAN

-- =================================
-- STIR/SHAKEN/RCD/eCNAM definitions
-- =================================

-- See clause 7.X.2.1.2 for details of this structure
STIRSHAKENSignatureGeneration ::= SEQUENCE
{
    pASSporTs [1] SEQUENCE OF PASSporT
}

-- See clause 7.X.2.1.3 for details of this structure
STIRSHAKENSignatureValidation ::= SEQUENCE
{
    pASSporTs                 [1] SEQUENCE OF PASSporT OPTIONAL,
    rCDTerminalDisplayInfo    [2] RCDDisplayInfo OPTIONAL,
    eCNAMTerminalDisplayInfo  [3] ECNAMDisplayInfo OPTIONAL,
    sHAKENValidationResult    [4] SHAKENValidationResult,
    sHAKENFailureStatusCode   [5] SHAKENFailureStatusCode OPTIONAL
}

-- ================================
-- STIR/SHAKEN/RCD/eCNAM parameters
-- ================================

PASSporT ::= SEQUENCE
{
    pASSporTHeader    [1] PASSporTHeader,
    pASSporTPayload   [2] PASSporTPayload,
    pASSporTSignature [3] OCTET STRING
}

PASSporTHeader ::= SEQUENCE
{
    type          [1] JWSTokenType,
    algorithm     [2] UTF8String,
    ppt           [3] UTF8String OPTIONAL,
    x5u           [4] UTF8String
}

JWSTokenType ::= ENUMERATED
{
    passport(1)
}

PASSporTPayload ::= SEQUENCE
{
    issuedAtTime    [1] GeneralizedTime,
    originator      [2] STIRSHAKENOriginator,
    destination     [3] STIRSHAKENDestinations,
    attestation     [4] Attestation,
    origId          [5] UTF8String,
    diversion       [6] STIRSHAKENDestination
}

STIRSHAKENOriginator ::= CHOICE
{
    telephoneNumber [1] STIRSHAKENTN,
    sTIRSHAKENURI   [2] UTF8String
}

STIRSHAKENDestinations ::= SEQUENCE OF STIRSHAKENDestination

STIRSHAKENDestination ::= CHOICE
{
    telephoneNumber [1] STIRSHAKENTN,
    sTIRSHAKENURI   [2] UTF8String
}


STIRSHAKENTN ::= CHOICE 
{
    mSISDN [1] MSISDN
}

Attestation ::= ENUMERATED
{
    attestationA(1),
    attestationB(2),
    attestationC(3)
}

SHAKENValidationResult ::= ENUMERATED
{
    tNValidationPassed(1),
    tNValidationFailed(2),
    noTNValidation(3)
}

SHAKENFailureStatusCode ::= INTEGER

ECNAMDisplayInfo ::= SEQUENCE
{
    name           [1] UTF8String,
    additionalInfo [2] OCTET STRING OPTIONAL
}

RCDDisplayInfo ::= SEQUENCE
{
    name [1] UTF8String,
    jcd  [2] OCTET STRING OPTIONAL,
    jcl  [3] OCTET STRING OPTIONAL
}

-- ===================
-- 5G LALS definitions
-- ===================