Back to Fprime

Svc::Ccsds::SdlsFileKeyManager

Svc/Ccsds/SdlsFileKeyManager/docs/sdd.md

4.3.03.1 KB
Original Source

Svc::Ccsds::SdlsFileKeyManager

The Svc::Ccsds::SdlsFileKeyManager component supplies SDLS keys read from a file via the Svc.Ccsds.SdlsKeyInterface interface. The key file path and the key length to read are set at runtime through a configure() call, since these vary across instances of the component. Each key request opens the file, reads exactly the configured number of bytes into the caller-provided SdlsKeyBuffer, closes the file, and returns SdlsStatus.SUCCESS. Any file error results in an SdlsStatus.KEY_ERROR return.

Functionality

  • configure(path, keySize) must be called during topology setup. It asserts that keySize is in (0, MAX_SDLS_KEY_SIZE], where MAX_SDLS_KEY_SIZE is defined in the SdlsKeyConfig configuration module.
  • Key requests arrive on the guarded keyGet port carrying a reference to an on-stack SdlsKeyBuffer (Fw::LinearBufferTemplate<MAX_SDLS_KEY_SIZE>).
  • On each request the component opens the key file, reads exactly keySize bytes into the buffer, and returns SUCCESS. The file is opened and closed per request, so the key file may be replaced at runtime and no file handle is held open.
  • On any file error — open error, read error, or short read — the component zeroizes the key buffer contents, returns KEY_ERROR with the buffer length reset to zero, and emits the KeyReadFailed WARNING_HI event carrying the OS status and byte counts.
  • A key request before configure() has been called asserts (fail early).

Port Descriptions

KindNamePort TypeDescription
guarded inputkeyGetSvc.Ccsds.SdlsKeyReceives a key request: fills the provided SdlsKeyBuffer with the key and returns the operation status.

Events

NameSeverityDescription
KeyReadFailedWARNING_HIThe key file could not be read (open error, read error, or short read); carries the OS status and bytes read/expected.

Requirements

NameDescriptionValidation
SVC-CCSDS-SDLS-FILE-KEY-MANAGER-001The SdlsFileKeyManager shall accept key requests via the Svc.Ccsds.SdlsKeyInterface interface (guarded keyGet), filling the provided SdlsKeyBuffer.Unit Test
SVC-CCSDS-SDLS-FILE-KEY-MANAGER-002Upon a key request, the SdlsFileKeyManager shall read exactly the configured key length from the configured file into the provided buffer and return SdlsStatus.SUCCESS.Unit Test
SVC-CCSDS-SDLS-FILE-KEY-MANAGER-003The SdlsFileKeyManager shall return SdlsStatus.KEY_ERROR and emit a WARNING_HI event on any file error (open error, read error, or short read).Unit Test
SVC-CCSDS-SDLS-FILE-KEY-MANAGER-004The key file path and key length shall be supplied at runtime via configure(); the key length shall be in (0, MAX_SDLS_KEY_SIZE]. A key request before configuration shall assert.Unit Test

See Also