Requirements#

Hash Requirements
status: draft
security: NO
safety: ASIL_B
tags: requirements, hash
version: 1

Functional Requirements#

Hash Computation from Byte Data
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall compute a hash value over a contiguous byte sequence supplied by the caller, accumulating state across one or more data inputs and producing the final digest upon finalization.

Hash Value Retrieval as Raw Bytes
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall expose the computed hash value as a raw byte sequence.

Hash Value Retrieval as Hexadecimal String
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall expose the computed hash value as a hexadecimal string representation.

Algorithm Selection via Factory
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall allow the hash algorithm to be selected and a calculator instance to be created independently of the code that performs the computation, so that the calling code is not coupled to any specific algorithm implementation.

Cryptographic Hash Algorithms
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall support SHA-1, SHA-256, SHA-384, and SHA-512 as cryptographic hash algorithms.

CRC-32 Checksum Algorithm
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall support IEEE CRC-32 as a checksum algorithm.

Exception-Free Error Propagation
status: valid
security: YES
safety: ASIL_B
reqtype: Functional
version: 1

The hash library shall propagate errors from hash calculator instantiation via return-value types, enabling use in safety-critical contexts where exception handling is not available.