README

mokomoking2501/profinet_master/security does not have a README file

#
AcdResult

pub(all) enum AcdResult {
Permit
Deny
} derive(Eq,
Debug
)

ACD decision result.

#
AcdTarget

pub(all) enum AcdTarget {
PlainAR
SecureAR
RDCP
Control
Record
SCM
DCP
} derive(Eq,
Debug
)

Access control target categories.

#
AeadAlgorithm

pub(all) enum AeadAlgorithm {
AES_128_GCM
AES_256_GCM
ChaCha20_Poly1305
} derive(Eq,
Debug
)

AEAD algorithm (§6.2.2 Tables 99-102).

#
CmsamEvent

pub(all) enum CmsamEvent {
EapStart
EapMessageReceived
KeysReady
Complete
Abort
} derive(Eq,
Debug
)

CMSAM / CTLSAM events.

#
CmsamState

pub(all) enum CmsamState {
CmsamIdle
CmsamEapStart
CmsamEapRunning
CmsamKeysReady
CmsamComplete
} derive(Eq,
Debug
)

CMSAM / CTLSAM state machine states (§6.3.3, Figures 10-11).

#
CtlsamEvent

pub(all) enum CtlsamEvent {
TlsStart
TlsMessageReceived
TlsKeysReady
TlsComplete
TlsAbort
} derive(Eq,
Debug
)

CTLSAM events.

#
CtlsamState

pub(all) enum CtlsamState {
CtlsamIdle
CtlsamTlsInit
CtlsamTlsHandshake
CtlsamKeysReady
CtlsamComplete
} derive(Eq,
Debug
)

CTLSAM states (TLS-specific variant of CMSAM).

#
ProEvent

pub(all) enum ProEvent {
CreateSecurityAssociation
RemoveSecurityAssociation
SackDegradationDetected
UpdateSecurityAssociation
} derive(Eq,
Debug
)

PRO state machine events.

#
ProState

pub(all) enum ProState {
ProIdle
ProOpen
ProDegraded
ProClosed
} derive(Eq,
Debug
)

PRO state machine states (§6.2.3, Figure 8).

#
ProtectionMode

pub(all) enum ProtectionMode {
AuthOnly
AuthEncrypt
} derive(Eq,
Debug
)

Protection mode of the security data header (§6.2.1.2 Table 74).

#
SecurityBlockType

pub(all) enum SecurityBlockType {
SecurityCapabilities
SecurityConfiguration
CertificationPath
TrustedCA
KeyPairCSR
} derive(Eq,
Debug
)

New BlockType values for security blocks.

#
SecurityCredential

pub(all) struct SecurityCredential {
ee_cert_path : String
private_key_ref : String
trust_anchor_ca : String
} derive(Eq,
Debug
)

End-entity credential: EE certificate path + private key reference.

#
SecurityData

pub(all) struct SecurityData {
protection_mode : ProtectionMode
generation_number : Int
sequence_counter : Int
security_length : Int
} derive(Eq,
Debug
)

SecurityData header (§6.2.1.1 Table 73).

#
SecurityErrorCode

pub(all) enum SecurityErrorCode {
NoSecurityAssociation
HandshakeFailed
CertificateInvalid
AccessDenied
ReplayDetected
IntegrityError
} derive(Eq,
Debug
)

Security-related ErrorCode2 extensions.

#
SecurityMode

pub(all) enum SecurityMode {
Any
Protected
} derive(Eq,
Debug
)

PROFINET Security Mode (§6.4.1.4 Table 117).

#
SecurityServiceClass

pub(all) enum SecurityServiceClass {
Protection
SecurityAssociationMgmt
SecurityConfigMgmt
ConfigurationVault
AccessControlDecision
RoleAuthorization
} derive(Eq,
Debug
)

Security service class identifiers (§5.2).

#
SecurityUtilization

pub(all) enum SecurityUtilization {
SymmetricAuthOnly
SymmetricAuthEncrypt
KeyDerivation
KeyAgreement
SignatureVerification
SignatureGeneration
} derive(Eq,
Debug
)

Security capability utilization (Table 98).

#
SmpmEvent

pub(all) enum SmpmEvent {
InitHandshake
HandshakeComplete
RekeyRequest
RekeyComplete
SessionTerminate
} derive(Eq,
Debug
)

SMPM state machine events.

#
SmpmState

pub(all) enum SmpmState {
SmpmIdle
SmpmPending
SmpmEstablished
SmpmRekeying
} derive(Eq,
Debug
)

SMPM state machine states (§6.2.3, Figure 9).

#
acd_check

fn acd_check(mode : SecurityMode, target : AcdTarget) -> AcdResult

Evaluate access-control decision. In Protected mode, only SecureAR is permitted for AR establishment; plain control/record/DCP traffic is denied.

#
aead_key_length

fn aead_key_length(alg : AeadAlgorithm) -> Int

#
block_type_read_security_req

let block_type_read_security_req : Int

SXP Security Block Types.

#
block_type_read_security_rsp

let block_type_read_security_rsp : Int

#
block_type_write_security_req

let block_type_write_security_req : Int

#
block_type_write_security_rsp

let block_type_write_security_rsp : Int

#
cmsam_transition

fn cmsam_transition(state : CmsamState, event : CmsamEvent) -> CmsamState

Transition the CMSAM/CTLSAM state machine.

#
ctlsam_transition

fn ctlsam_transition(state : CtlsamState, event : CtlsamEvent) -> CtlsamState

Transition the CTLSAM state machine.

#
encode_security_data

fn encode_security_data(sd : SecurityData) -> Bytes

Encode the 8-byte SecurityData header.

#
format_credential

fn format_credential(cred : SecurityCredential) -> String

#
format_security_data

fn format_security_data(sd : SecurityData) -> String

Format security data header summary.

#
format_security_info

fn format_security_info(mode : SecurityMode, alg : AeadAlgorithm) -> String

Format security mode information.

#
frame_id_alarm_high_secure

let frame_id_alarm_high_secure : Int

Security Frame IDs.

#
frame_id_alarm_low_secure

let frame_id_alarm_low_secure : Int

#
parse_aead_algorithm

fn parse_aead_algorithm(value : Int) -> AeadAlgorithm

#
parse_protection_mode

fn parse_protection_mode(value : Int) -> ProtectionMode

#
parse_security_data

fn parse_security_data(data : Bytes, offset : Int) -> SecurityData raise

Parse the 8-byte SecurityData header.

#
parse_security_mode

fn parse_security_mode(value : Int) -> SecurityMode

#
parse_security_utilization

fn parse_security_utilization(value : Int) -> SecurityUtilization

#
pro_transition

fn pro_transition(state : ProState, event : ProEvent) -> ProState

Transition the PRO state machine.

#
protection_mode_value

fn protection_mode_value(mode : ProtectionMode) -> Int

#
security_block_type_value

fn security_block_type_value(bt : SecurityBlockType) -> Int

#
security_error_code_label

fn security_error_code_label(code : SecurityErrorCode) -> String

#
security_error_code_value

fn security_error_code_value(code : SecurityErrorCode) -> Int

#
security_mode_value

fn security_mode_value(mode : SecurityMode) -> Int

#
security_record_index_end

let security_record_index_end : Int

#
security_record_index_start

let security_record_index_start : Int

Index range for security configuration records.

#
security_service_class_label

fn security_service_class_label(sc : SecurityServiceClass) -> String

#
smpm_transition

fn smpm_transition(state : SmpmState, event : SmpmEvent) -> SmpmState

Transition the SMPM state machine.

Source Files