All modules
CMVP Validated Module · FIPS 140-3 Security Policy

Ergotron Cryptographic Module

Certificate#5026StandardFIPS 140-3Level1TypeSoftwareEmbodimentMulti-Chip Stand AloneStatusActiveVendorErgotron, Inc.
Low review priority  ·  no TCB surface named  ·  last validated 13 months ago. How this is derived →

Certificate

StandardFIPS 140-3
Overall level1
Module typeSoftware
EmbodimentMulti-Chip Stand Alone
StatusActive
Sunset date7/22/2029
CaveatWhen operated in approved mode. No assurance of the minimum strength of generated SSPs (e.g., keys)
VendorErgotron, Inc.

Approved Algorithms (62)

AlgorithmACVP Cert
AES-CBCA4978
AES-CCMA4978
AES-CFB1A4978
AES-CFB128A4978
AES-CFB8A4978
AES-CMACA4978
AES-CTRA4978
AES-ECBA4978
AES-GCMA4978
AES-GMACA4978
AES-KWA4978
AES-KWPA4978
AES-OFBA4978
AES-XTSA4978
Counter DRBGA4978
DSA KeyGen (FIPS186-4)A4978
DSA PQGGen (FIPS186-4)A4978
DSA PQGVer (FIPS186-4)A4978
DSA SigGen (FIPS186-4)A4978
DSA SigVer (FIPS186-4)A4978
ECDSA KeyGen (FIPS186-4)A4978
ECDSA KeyVer (FIPS186-4)A4978
ECDSA SigGen (FIPS186-4)A4978
ECDSA SigVer (FIPS186-4)A4978
HMAC-SHA-1A4978
HMAC-SHA2-224A4978
HMAC-SHA2-256A4978
HMAC-SHA2-384A4978
HMAC-SHA2-512A4978
HMAC-SHA3-224A4978
HMAC-SHA3-256A4978
HMAC-SHA3-384A4978
HMAC-SHA3-512A4978
KAS-ECC-SSC Sp800-56Ar3A4978
KAS-FFC-SSC Sp800-56Ar3A4978
KDA HKDF SP800-56Cr2A4978
KDF SSHA4978
KDF TLSA4978
PBKDFA4978
RSA KeyGen (FIPS186-4)A4978
RSA SigGen (FIPS186-4)A4978
RSA SigVer (FIPS186-4)A4978
SHA-1A4978
SHA2-224A4978
SHA2-256A4978
SHA2-384A4978
SHA2-512A4978
SHA3-224A4978
SHA3-256A4978
SHA3-384A4978
SHA3-512A4978
SHAKE-128A4978
SHAKE-256A4978
TDES-CBCA4978
TDES-CFB1A4978
TDES-CFB64A4978
TDES-CFB8A4978
TDES-CMACA4978
TDES-ECBA4978
TDES-OFBA4978
TLS v1.2 KDF RFC7627A4978
TLS v1.3 KDFA4979

Derived Review-Risk Graph (review prompts, not findings)

flowchart LR
  %% Deterministic review-risk graph for Ergotron Cryptographic Module
  %% Review prompts and evidence gaps, NOT vulnerability findings.
  subgraph CMVP["CMVP-disclosed clues"]
    C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Self-Test<br/>Status Output</i>"]
    C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>SSH<br/>HTTPS</i>"]
    C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>application</i>"]
  end
  subgraph Inference["Derived inference"]
    I3["Possible only, some<br/>services may process input<br/>before, or without,<br/>operator authentication."]
    I5["Possible only, a protocol<br/>is referenced, but whether<br/>it is a live channel or<br/>only a KDF/algorithm name<br/>is unconfirmed."]
    I6["Possible only, a<br/>runtime/OS is referenced,<br/>but its membership in the<br/>cryptographic boundary is<br/>not established."]
  end
  subgraph Risk["Reviewer question"]
    R3["Can unauthenticated<br/>services leak state,<br/>consume resources, or<br/>transition security state?"]
    R5["If a live TLS/SSH/IKE<br/>channel exists, could<br/>library CVEs apply, or is<br/>this only a<br/>KDF/documentation name?"]
    R6["If the OS/runtime is<br/>in-boundary, could its<br/>CVEs be hidden by<br/>firmware-only versioning?"]
  end
  subgraph Evidence["Evidence needed to close"]
    E3["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>pre-auth reachability<br/>matrix · rate limits and<br/>output redaction ·<br/>abuse-case tests"]
    E5["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>library identity and<br/>version ·<br/>certificate-validation<br/>behaviour · protocol-CVE<br/>disposition"]
    E6["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>runtime identity and<br/>config · kernel/runtime<br/>hardening profile ·<br/>patch/backport manifest"]
  end
  C3 --> I3 --> R3 --> E3
  C5 --> I5 --> R5 --> E5
  C6 --> I6 --> R6 --> E6
  classDef clue fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef infer fill:#fff7e6,stroke:#b98500,color:#6b4e00;
  classDef risk fill:#fbe9e9,stroke:#b02a2a,color:#7a1f1f;
  classDef evidence fill:#e6f4ea,stroke:#1e7d34,color:#14532d;
  class C3,C5,C6 clue;
  class I3,I5,I6 infer;
  class R3,R5,R6 risk;
  class E3,E5,E6 evidence;
Underlying clues
flowchart LR
  %% Deterministic clue tier for Ergotron Cryptographic Module
  %% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
  subgraph CMVP["CMVP-disclosed clues (deterministic)"]
    C3["[low] Self-test / status surface (referenced in text)<br/><i>Self-Test<br/>Status Output</i><br/>src: text:keyword"]
    C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>SSH<br/>HTTPS</i><br/>src: text:keyword"]
    C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>application</i><br/>src: text:keyword"]
  end
  classDef clueHigh fill:#eef3f9,stroke:#2f6fb0,stroke-width:2px,color:#1f3a5f;
  classDef clueMedium fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
  classDef clueLow fill:#f7f7f7,stroke:#999,stroke-dasharray:4 4,color:#444;
  class C3,C5,C6 clueLow;

Security Policy, page by page

Page 1

Ergotron, Inc. Ergotron Cryptographic Module Software Version: 1.0 FIPS Security Level: 1 Document Version: 0.2 Prepared for: Prepared by: Ergotron, Inc. Corsec Security, Inc.

1181 Trapp Road 12600 Fair Lakes Circle Suite 210

Eagan, MN 55121 Fairfax, VA 22033 United States of America United States of America Phone: +1 655 681 7600 Phone: +1 703 267 6050 www.ergotron.com/en-us/ www.corsec.com

Page 2

Abstract This is a non-proprietary Cryptographic Module Security Policy for the Ergotron Cryptographic Module (software version: v1.0) from Ergotron, Inc. (Ergotron). This Security Policy describes how the Ergotron Cryptographic Module meets the security requirements of Federal Information Processing Standards (FIPS) Publication 140-3, which details the U.S. and Canadian government requirements for cryptographic modules. More information about the FIPS 140-3 standard and validation program is available on the Cryptographic Module Validation Program (CMVP) website, which is maintained by the National Institute of Standards and Technology (NIST) and the Canadian Centre for Cyber Security (CCCS). This document also describes how to run the module in a secure Approved mode of operation. This policy was prepared as part of the Level 1 FIPS 140-3 validation of the module. The Ergotron Cryptographic Module is referred to in this document as “Ergotron Cryptographic Module” or “module”. References This document deals only with operations and capabilities of the module in the technical terms of a FIPS 140-3 cryptographic module security policy. More information is available on the module from the following sources:

Page 3
Table of Contents
#SectionPage
Page 4
List of Tables
ItemPage
Table 1 – Security Levels5
Table 2 – Tested Operational Environments6
Table 3 – Approved Algorithms7
Table 4 – Non-Approved Algorithms Allowed in the Approved Mode of Operation11
Table 5 – Non-Approved Algorithms Not Allowed in the Approved Mode of Operation11
Table 6 – Ports and Interfaces15
Table 7 – Roles, Service Commands, Input and Output16
Table 8 – Approved Services18
Table 9 – Non-Approved Services19
Table 10 – SSPs25
Table 11 – Non-Deterministic Random Number Generation Specification28
Table 12 – Acronyms and Abbreviations35
Figure 1 – GPC Block Diagram13
Figure 2 – Module Block Diagram (with Cryptographic Boundary)14
Page 5
ISO/IEC 24579 Section 6. [Number Below]FIPS 140-3 Section TitleSecurity Level
1General1
2Cryptographic Module Specification1
3Cryptographic Module Interfaces1
4Roles, Services, and Authentication1
5Software/Firmware Security1
6Operational Environment1
7Physical SecurityN/A
8Non-Invasive SecurityN/A
9Sensitive Security Parameter Management1
10Self-Tests1
11Life-Cycle Assurance1
12Mitigation of Other AttacksN/A

Ergotron, Inc. manufactures ergonomic solutions for the workplace, including workflow solutions for healthcare and asset control software. The Ergotron Cryptographic Module 1.0 is a cryptographic library embedded in the following Ergotron products: • Ergotron Mobile Power • RhythmConnect • Mosaic Charging System • YES Charging System • ZIP Charging System • Mosaic • Encore 2.0 • Envoy 2.0 The Ergotron Cryptographic Module 1.0 offers symmetric encryption/decryption, digital signature generation/verification, hashing, cryptographic key generation, random number generation, message authentication, and key establishment functions to secure data-at-rest/data-in-flight and to support secure communications protocols (including SSH1 and TLS2 1.2/1.3). The Ergotron Cryptographic Module is validated at the FIPS 140-3 section levels shown in Table

  1. Table 1 – Security Levels The module has an overall security level of
  2. SSH – Secure Shell

2 TLS – Transport Layer Security

Page 6
#Operating SystemHardware PlatformProcessorPAA/Acceleration
1Debian 9Dell PowerEdge R440Intel® Xeon Silver 4214RWith (AES-NI)
2Debian 9Dell PowerEdge R440Intel® Xeon Silver 4214RWithout

2. Cryptographic Module Specification The Ergotron Cryptographic Module is a software module with a multi-chip standalone embodiment. The module is designed to operate within a modifiable operational environment. Additionally, the module is designed to utilize the AES-NI 3 extended instruction set when available by the host platform’s CPU for processor algorithm acceleration (PAA) of its AES implementation.

2.1 Operational Environments

The module was tested and found to be compliant with FIPS 140-3 requirements on the operational environments (OE) listed in Table 2. Table 2 – Tested Operational Environments There are no vendor-affirmed operational environments claimed. Module operators may perform post-validation porting of the module and affirm the module’s continued validation compliance. The cryptographic module will remain compliant with the FIPS 140-3 validation on any general-purpose platform/processor that supports the specified operating system listed on the validation entry, or another compatible operating system. The CMVP makes no statement as to the correct operation of the module or the security strengths of the generated keys when ported to an operational environment not listed on the validation certificate.

2.2 Algorithm Implementations

Validation certificates for each Approved security function are listed in Table 3. Note that there are algorithms, modes, and key/moduli sizes that have been CAVP-tested but are not used by any Approved service of the module. Only the algorithms, modes/methods, and key lengths/curves/moduli shown in Table 3 are used by an Approved service of the module.

3 AES-NI – Advanced Encryption Algorithm New Instructions

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 7
CAVP Certificate4Algorithm and StandardMode / MethodDescription / Key Size(s) / Key StrengthsUse / Function
A4978AES FIPS PUB5 197 NIST SP 800-38ACBC6, CFB17, CFB8, CFB128, CTR8, ECB9, OFB10128, 192, 256Encryption/decryption
A4978AES NIST SP 800-38BCMAC11128, 192, 256MAC generation/verification
A4978AES NIST SP 800-38CCCM12128, 192, 256Encryption/decryption
A4978AES NIST SP 800-38DGCM13 (internal IV)128, 192, 256Encryption/decryption
A4978AES NIST SP 800-38DGMAC14128, 192, 256MAC generation/verification
A4978AES NIST SP 800-38EXTS15,16,17128, 256Encryption/decryption
A4978AES NIST SP 800-38FKW18, KWP19128, 192, 256Encryption/decryption
Vendor AffirmedCKG20 NIST SP 800-133rev2--Cryptographic key generation
A4978CVL21 NIST SP 800-135rev1KDF (SSH, TLS22 v1.0/1.1, v1.2)-Key derivation No parts of the SSH or TLS protocols, other than the KDFs, have been tested by the CAVP and CMVP.
A4978CVL RFC23 7627KDF (TLS v1.2)-Key derivation No part of the TLS v1.2 protocol, other than the KDF, has been tested by the CAVP and CMVP.

4 This table includes vendor-affirmed algorithms that are approved but CAVP testing is not yet available.

5 PUB – Publication

6 CBC – Cipher Block Chaining

7 CFB – Cipher Feedback

8 CTR – Counter

ECB – Electronic Code Book

10 OFB – Output Feedback

11 CMAC – Cipher-Based Message Authentication Code

12 CCM – Counter with Cipher Block Chaining - Message Authentication Code

GCM – Galois Counter Mode

14 GMAC – Galois Message Authentication Code

15 XOR – Exclusive OR

16 XEX – XOR Encrypt XOR

XTS – XEX-Based Tweaked-Codebook Mode with Ciphertext Stealing

18 KW – Key Wrap

19 KWP – Key Wrap with Padding

21 CVL – Component Validation List

TLS – Transport Layer Security

23 RFC – Request for Comments

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 8
CAVP Certificate4Algorithm and StandardMode / MethodDescription / Key Size(s) / Key StrengthsUse / Function
A4979CVL RFC 8446KDF (TLS v1.3)-Key derivation No part of the TLS v1.3 protocol, other than the KDF, has been tested by the CAVP and CMVP.
A4978DRBG24 NIST SP 800-90Arev1Counter-based128, 192, 256-bit AES-CTRDeterministic random bit generation
A4978DSA25 FIPS PUB 186-4KeyGen2048/224, 2048/256, 3072/256Key pair generation
PQGGen2048/224, 2048/256, 3072/256 (SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Domain parameter generation
PQGVer2048/224, 2048/256, 3072/256 (SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Domain parameter verification
SigGen2048/224, 2048/256, 3072/256 (SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Digital signature generation
SigVer2048/224, 2048/256, 3072/256 (SHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2- 512)Digital signature verification
A4978ECDSA26 FIPS PUB 186-4KeyGen Secret generation mode: Testing candidatesB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521Key pair generation
KeyVerB-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P-521Public key validation
SigGenB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521 (SHA2-224, SHA2-256, SHA2- 384, SHA2-512)Digital signature generation
SigVerB-163, B-233, B-283, B-409, B-571, K-163, K-233, K-283, K-409, K-571, P-192, P-224, P-256, P-384, P-521 (SHA-1, SHA2-224, SHA2-256, SHA2- 384, SHA2-512)Digital signature verification

24 DRBG – Deterministic Random Bit Generator

26 ECDSA – Elliptic Curve Digital Signature Algorithm

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 9
CAVP Certificate4Algorithm and StandardMode / MethodDescription / Key Size(s) / Key StrengthsUse / Function
A4978HMAC FIPS PUB 198-1SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2- 512, SHA3-224, SHA3- 256, SHA3-384, SHA3- 512112 (minimum)Message authentication
A4978KAS-ECC-SSC27 NIST SP 800-56Arev3ephemeralUnifiedB-233, B-283, B-409, B-571, K-233, K-283, K-409, K-571, P-224, P-256, P-384, P-521Shared secret computation
A4978KAS-FFC-SSC28 NIST SP 800-56Arev3dhEphem2048/224 (FB), 2048/256 (FC)
A4978KDA29 NIST SP 800-56Crev2HKDFSHA2-224, SHA2-256, SHA2- 384, SHA2-512, SHA2- 512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3- 384, SHA3-512)Key derivation
A4978KTS30 NIST SP 800-38CAES-CCM128, 192, 256Key wrap/unwrap (authenticated encryption)31 Key establishment methodology provides between 128 and 256 bits of encryption strength
A4978KTS NIST SP 800-38DAES-GCM128, 192, 256Key wrap/unwrap (authenticated encryption)32 Key establishment methodology provides between 128 and 256 bits of encryption strength
A4978KTS NIST SP 800-38FAES-KW, AES-KWP128, 192, 256Key wrap/unwrap Key establishment methodology provides between 128 and 256 bits of encryption strength
A4978KTS FIPS PUB 197 NIST SP 800-38BAES-CMAC128, 192, 256Key wrap/unwrap (encryption with message authentication)33 Key establishment methodology provides between 128 and 256 bits of encryption strength
A4978KTS FIPS PUB 197 FIPS PUB 198-1AES-ECB with HMAC128, 192, 256Key wrap/unwrap (encryption with message authentication)34 Key establishment methodology provides between 128 and 256 bits of encryption strength

27 KAS-ECC-SSC – Key Agreement Scheme - Elliptic Curve Cryptography - Shared Secret Computation

KAS-FFC-SSC – Key Agreement Scheme - Finite Field Cryptography - Shared Secret Computation

30 KTS – Key Transport Scheme

31 Per FIPS 140-3 Implementation Guidance D.G, AES-CCM is an Approved key transport technique.

32 Per FIPS 140-3 Implementation Guidance D.G, AES-GCM is an Approved key transport technique.

Per FIPS 140-3 Implementation Guidance D.G, AES with CMAC is an Approved key transport technique.

34 Per FIPS 140-3 Implementation Guidance D.G, AES (in any Approved mode) with HMAC is an Approved key transport technique.

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 10
CAVP Certificate4Algorithm and StandardMode / MethodDescription / Key Size(s) / Key StrengthsUse / Function
A4978PBKDF235 NIST SP 800-132Section 5.4, option 1aSHA-1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA3- 224, SHA3-256, SHA3-384, SHA3-512Password-based key derivation
A4978RSA36 FIPS PUB 186-4, Appendix B.3.3Key generation mode: B.3.32048, 3072, 4096Key pair generation
A4978RSA FIPS PUB 186-4X9.312048, 3072, 4096 (SHA2-256, SHA2-384, SHA2-512)Digital signature generation
1024, 2048, 3072, 4096 (SHA-1, SHA2-256, SHA2- 384, SHA2-512)Digital signature verification
PKCS#1 v1.52048, 3072, 4096 (SHA2-224, SHA2-256, SHA2-384, SHA2- 512)Digital signature generation
1024, 2048, 3072, 4096 (SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Digital signature verification
PSS372048, 3072, 4096 (SHA2-224, SHA2-256, SHA2-384, SHA2- 512)Digital signature generation
1024, 2048, 3072, 4096 (SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2-512)Digital signature verification
A4978SHA-3 FIPS PUB 202SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE38-128, SHAKE-256-Message digest
A4978SHS39 FIPS PUB 180-4SHA-1, SHA2-224, SHA2- 256, SHA2-384, SHA2- 512-Message digest
A4978Triple-DES NIST SP 800-67 NIST SP 800-38ACBC, CFB1, CFB8, CFB64, ECB, OFB168Decryption
A4978Triple-DES NIST SP 800-67 NIST SP 800-38BCMAC112, 168MAC verification

The vendor affirms the following cryptographic security methods:

36 RSA – Rivest Shamir Adleman

37 PSS – Probabilistic Signature Scheme

SHAKE – Secure Hash Algorithm KECCAK

39 SHS – Secure Hash Standard

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 11
AlgorithmCaveatUse / Function
AESCert. A4978; key unwrapping; Per IG D.G.Symmetric key unwrapping
RSACert. A4978; key unencapsulation: Per IG D.G.Asymmetric key unencapsulation
SHA-1Cert. A4978; secure hashingDigital signature generation in TLS v1.0/1.140
Triple-DESCert. A4978; key unwrapping; Per IG D.G.Symmetric key unwrapping
AlgorithmUse / Function
AES-GCM (non-compliant when used with external IV)Authenticated encryption/decryption
AES-OCB41Authenticated encryption/decryption
ANSI X9.31 RNG (with 128-bit AES core)Random number generation
ARIAEncryption/decryption
Blake2Encryption/decryption
BlowfishEncryption/decryption
CamelliaEncryption/decryption
CAST, CAST5Encryption/decryption
ChaCha20Encryption/decryption
DESEncryption/decryption
DH (non-compliant with key sizes below 2048 bits)Key agreement

seed is an unmodified output from the DRBG. The cryptographic module invokes a GET command to obtain entropy for random number generation (the module requests 256 bits of entropy from the calling application per request), and then passively receives entropy from the calling application while having no knowledge of the entropy source and exercising no control over the amount or the quality of the obtained entropy. The calling application and its entropy sources are located within the operational environment inside the module’s physical perimeter but outside the cryptographic boundary. Thus, there is no assurance of the minimum strength of the generated keys. The module implements the non-Approved but allowed algorithms shown in Table 4 below. Table 4

41 OCB – Offset Codebook

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 12
AlgorithmUse / Function
DSA (non-compliant)Digital signature generation
ECDSA (non-compliant)Digital signature generation
RSA (non-compliant when used with SHA-1 outside the TLS protocol)Digital signature generation
DSA (non-compliant with key sizes below the minimums Approved for Approved mode)Key pair generation, digital signature verification
ECDH (non-compliant with curves P-192, K-163, B- 163, and non-NIST curves)Key agreement
ECDSA (non-compliant with curves P-192, K-163, B- 163, and non-NIST curves)Key pair generation, digital signature verification
EdDSA42Key pair generation, digital signature generation, digital signature verification
IDEAEncryption/decryption
MD2, MD4, MD5Message digest
Poly1305Message authentication code
RC243, RC4, RC5Encryption/decryption
RIPEMDMessage digest
RMD160Message digest
RSA (non-compliant with non-approved/untested key sizes, and functions)Key pair generation; digital signature generation; digital signature verification; key transport
SEEDEncryption/decryption
SM2, SM3Message digest
SM4Encryption/decryption
Triple-DES (non-compliant)Encryption; MAC generation; key wrap
WhirlpoolMessage digest
2.3 Cryptographic Boundary

As a software cryptographic module, the module has no physical components. The physical perimeter of the cryptographic module is defined by each host platform on which the module is installed. Figure 1 below illustrates a block diagram of a typical GPC and the module’s physical perimeter. EdDSA – Edwards-curve Digital Signature Algorithm

43 RC – Rivest Cipher

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 13
Table, extracted as text (did not parse into structured rows)
Hardware                               Network                           DVD RAM Management                              Interface HDD Clock                                                         SCSI/SATA Generator                                                      Controller LEDs/LCD CPU                                                                              Serial I/O Hub Audio Cache                 PCI/PCIe Slots                                                       USB BIOS Power             Graphics                                               PCI/PCIe Interface           Controller                                              Slots External Power Supply KEY: BIOS – Basic Input/Output System               PCIe – PCI express Plaintext Data             CPU – Central Processing Unit                  HDD – Hard Disk Drive Encrypted Data             SATA – Serial Advanced Technology Attachment   DVD – Digital Video Disc Control Input              SCSI – Small Computer System Interface         USB – Universal Serial Bus Status Output              PCI – Peripheral Component Interconnect        RAM – Random Access Memory Physical Perimeter         LED – Light Emitting Diode                     LCD – Liquid Crystal Display Figure 1 – GPC Block Diagram The module’s cryptographic boundary consists of all functionalities contained within the module’s compiled source code and comprises the following components: •    libcrypto (cryptographic primitives library file) •    libssl (TLS protocol library file) •    libcrypto.hmac (an HMAC digest file for libcrypto integrity checks) •    libssl.hmac (an HMAC digest file for libssl integrity checks) The cryptographic boundary is the contiguous perimeter that surrounds all memory-mapped functionality provided by the module when loaded and stored in the host device’s memory. The module is entirely contained within the physical perimeter. Figure 2 shows the logical block diagram of the module executing in memory and its interactions with surrounding software components, as well as the module’s physical perimeter and cryptographic boundary. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.
Page 14

libssl libssl.hmac Calling Application libcrypto libcrypto.hmac KEY: Cryptographic Boundary Physical Perimeter Operating System Data Input Data Output Control Input Control Output CPU Memory Storage Ports Status Output System Calls Host Device Figure 2 – Module Block Diagram (with Cryptographic Boundary)

2.4 Modes of Operation

The module supports two modes of operation: Approved and non-Approved. The module will be in Approved mode when all pre-operational self-tests have completed successfully, and only Approved services are invoked. Table 3 and Table 4 above list the Approved and allowed algorithms; Table 8 provides descriptions of the Approved services. The module can also alternate service-by-service between Approved and non-Approved modes of operation. The module will switch to the non-Approved mode upon execution of a non-Approved service. The module will switch back to the Approved mode upon execution of an Approved service. Table 5 lists the non-Approved algorithms implemented by the module; Table 9 below lists the services that constitute the non-Approved mode. When following the guidance in this document, CSPs are not shared between Approved and non-Approved services and modes of operation. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 15
Physical PortLogical InterfaceData That Passes Over Port/Interface
Physical data input port(s) of the tested platformsData Input • API input arguments that provide input data for processing• Data to be encrypted, decrypted, signed, verified, or hashed • Keys to be used in cryptographic services • Random seed material for the module’s DRBG • Keying material to be used as input to key establishment services
Physical data output port(s) of the tested platformsData Output • API output arguments that return generated or processed data back to the caller• Data that has been encrypted, decrypted, or verified • Digital signatures • Hashes • Random values generated by the module’s DRBG • Keys established using module’s key establishment methods
Physical control input port(s) of the tested platformsControl Input • API input arguments that are used to initialize and control the operation of the module• API commands invoking cryptographic services • Modes, key sizes, etc. used with cryptographic services
Physical status output port(s) of the tested platformsStatus Output • API call return values• Status information regarding the module • Status information regarding the invoked service/operation

FIPS 140-3 defines the following logical interfaces for cryptographic modules: As a software library, the cryptographic module has no direct access to any of the host platform’s physical ports, as it communicates only to the calling application via its well-defined API. A mapping of the FIPS-defined interfaces and the module’s ports and interfaces at the physical and logical boundaries can be found in Table 6. Note that Table 6 – Ports and Interfaces ©2025 Ergotron, Inc.

Page 16
RoleServiceInputOutput
COShow StatusAPI call parametersCurrent operational status
COPerform self-tests on-demandRe-instantiate module; API call parametersStatus
COZeroizeRestart calling application; reboot or power-cycle host platformNone
COShow versioning informationAPI call parametersModule name, version
UserPerform symmetric encryptionAPI call parameters, key, plaintextStatus, ciphertext
UserPerform symmetric decryptionAPI call parameters, key, ciphertextStatus, plaintext
UserGenerate symmetric digestAPI call parameters, key, plaintextStatus, digest
UserVerify symmetric digestAPI call parameters, digestStatus
UserPerform authenticated symmetric encryptionAPI call parameters, key, plaintextStatus, ciphertext
UserPerform authenticated symmetric decryptionAPI call parameters, key, ciphertextStatus, plaintext
UserGenerate random numberAPI call parametersStatus, random bits
UserPerform keyed hash operationsAPI call parameters, key, messageStatus, MAC44
UserPerform hash operationAPI call parameters, messageStatus, hash
UserGenerate DSA domain parametersAPI call parametersStatus, domain parameters
UserVerify DSA domain parametersAPI call parametersStatus, domain parameters
UserGenerate asymmetric key pairAPI call parametersStatus, key pair
UserVerify ECDSA public keyAPI call parameters, keyStatus
UserGenerate digital signatureAPI call parameters, key, messageStatus, signature

4. Roles, Services, and Authentication The sections below describe the module’s authorized roles, services, and operator authentication methods.

4.1 Authorized Roles

The module supports a Crypto Officer (CO) that authorized operators can assume. The CO role performs cryptographic initialization or management functions and general security services. The module also supports the following role(s):

44 MAC – Message Authentication Code

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 17
RoleServiceInputOutput
UserVerify digital signatureAPI call parameters, key, signature, messageStatus
UserPerform key wrapAPI call parameters, encryption key, keyStatus, encrypted key
UserPerform key unwrapAPI call parameters, decryption key, encrypted keyStatus, decrypted key
UserCompute shared secretAPI call parametersStatus, shared secret
UserDerive SSH keysAPI call parameters, SSH master secretStatus, SSH keys
UserDerive TLS keysAPI call parameters, TLS pre- master secretStatus, TLS keys
UserDerive key via HKDFAPI call parametersStatus, key
UserDerive key via PBKDF2API call parameters, passphraseStatus, key
UserGenerate symmetric digest (CMAC)API call parameters, key, messageStatus, MAC
4.2 Authentication Methods

The module does not support authentication mechanisms; roles are implicitly selected based on the service invoked. Refer to Table 7 above for a listing of the services associated with each authorized role.

4.3 Services

Descriptions of the services available to the authorized roles are provided in Table 8 below. This module is a software library that provides cryptographic functionality to calling applications. As such, the security functions provided via the module’s APIs are considered security services, and the module provides indicators for Approved security services as required by FIPS 140-3 IG 2.4.C. When invoking an API for an offered security service, the calling application provides inputs (keys, key sizes, modes, etc.) that the module combines into a single, internal structure, or “context”, that drives the execution of the cryptographic service. Each security service invocation will determine if the invoked service is an Approved security service. Upon completion of the service, that context is first updated with the results of the service as well as the Approved security service indicator, and then returned to the calling application. To access the indicator value from the context, the calling application must pass the resultant context to the indicator API associated with that security function (note the indicator check must be performed before any context cleanup is performed). The indicator API will return “1” to indicate the usage of an Approved service. Indicators for services providing non-Approved security functions (as well as for services not requiring an indicator) will have a value other than “1”, ensuring that the indicators for Approved services are unambiguous. Additional details on the APIs used for the Approved service indicators are provided in Appendix B below. Please note that the keys and Sensitive Security Parameters (SSPs) listed in the table indicate the type of access required using the following notation:

Page 18
ServiceDescriptionApproved Security Function(s)Keys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Show StatusReturn mode statusNoneNoneCON/AN/A
Perform self- tests on- demandPerform pre- operational self- testsNoneNoneCON/AAPI return value
ZeroizeZeroize and de- allocate memory containing sensitive dataNoneAll SSPsCOAll SSPs – ZN/A
Show versioning informationReturn module versioning informationNoneNoneCON/AN/A
Perform symmetric encryptionEncrypt plaintext dataAES (CBC, CFB1, CFB8, CFB128, CTR, ECB, OFB, KW, KWP) (Cert. A4978) XTS-AES (Cert. A4978)AES key XTS-AES keyUserAES key – WE XTS-AES key – WEAPI return value
Perform symmetric decryptionDecrypt ciphertext dataAES (CBC, CFB1, CFB8, CFB128, CTR, ECB, OFB, KW, KWP) (Cert. A4978) XTS-AES (Cert. A4978) Triple-DES (CBC, CFB1, CFB8, CFB64, ECB, OFB) (Cert. A4978)AES key XTS-AES key Triple-DES keyUserAES key – WE XTS-AES key – WE Triple-DES key – WEAPI return value
Generate symmetric digestGenerate symmetric digestAES (CMAC )(Cert. A4978) AES (GMAC) (Cert. A4978)AES CMAC key AES GMAC keyUserAES CMAC key – WE AES GMAC key – WEAPI return value
Verify symmetric digestVerify symmetric digestAES (CMAC) (Cert. A4978) AES (GMAC) (Cert. A4978) Triple-DES CMAC (Cert. A4978)AES CMAC key AES GMAC key Triple-DES CMAC keyUserAES CMAC key – WE AES GMAC key – WE Triple-DES CMAC key – WEAPI return value
Perform authenticated symmetric encryptionEncrypt plaintext using supplied AES GCM key and IVAES (GCM) (Cert. A4978)AES GCM key AES GCM IVUserAES GCM key – WE AES GCM IV – WEAPI return value
Perform authenticated symmetric decryptionDecrypt ciphertext using supplied AES GCM key and IVAES (GCM) (Cert. A4978)AES GCM key AES GCM IVUserAES GCM key – WE AES GCM IV – WEAPI return value
Generate random numberReturn random bits to the calling applicationDRBG (Cert. A4978)DRBG entropy input DRBG seed DRBG ‘V’ value DRBG ‘Key’ valueUserDRBG entropy input – WE DRBG seed – GE DRBG ‘V’ value – GE DRBG ‘Key’ value – GEAPI return value
Perform keyed hash operationsCompute a message authentication codeHMAC (Cert. A4978) SHA (Cert. A4978)HMAC keyUserHMAC key – WEAPI return value
Perform hash operationCompute a message digestSHA (Cert. A4978)NoneUserN/AAPI return value
Generate DSA domain parametersGenerate DSA domain parametersDSA (Cert. A4978)NoneUserN/AAPI return value
Verify DSA domain parametersVerify DSA domain parametersDSA (Cert. A4978)NoneUserN/AAPI return value
Generate asymmetric key pairGenerate a public/private key pairDSA (Cert. A4978) ECDSA (Cert. A4978) RSA (Cert. A4978)DSA public key DSA private key ECDSA public key ECDSA private key RSA public key RSA private keyUserDSA public key – GR DSA private key – GR ECDSA public key – GR ECDSA private key – GR RSA public key – GR RSA private key – GRAPI return value
Page 19
ServiceDescriptionApproved Security Function(s)Keys and/or SSPsRolesAccess Rights to Keys and/or SSPsIndicator
Verify ECDSA public keyVerify an ECDSA public keyECDSA (Cert. A4978)ECDSA public keyUserECDSA public key – WAPI return value
Generate digital signatureGenerate a digital signatureRSA (Cert. A4978)RSA private keyUserRSA private key – WEAPI return value
Verify digital signatureVerify a digital signatureECDSA (Cert. A4978) RSA (Cert. A4978)ECDSA public key RSA public keyUserECDSA public key – WE RSA public key – WEAPI return value
Perform key wrapPerform key wrapKTS (Cert. A4978)AES key AES CMAC key AES GMAC key AES GCM key AES GCM IV HMAC keyUserAES key – WE AES CMAC key – WE AES GMAC key – WE AES GCM key – WE AES GCM IV – WE HMAC key – WEAPI return value
Perform key unwrapPerform key unwrapKTS (Cert. A4978)AES key AES CMAC key AES GMAC key AES GCM key AES GCM IV HMAC key Triple-DES keyUserAES key – WE AES CMAC key – WE AES GMAC key – WE AES GCM key – WE AES GCM IV – WE HMAC key – WE Triple-DES key – WEAPI return value
Compute shared secretCompute DH/ECDH shared secret suitable for use as input to an internal TLS KDFKAS-ECC-SSC (Cert. A4978) KAS-FFC-SSC (Cert. A4978)DH public component DH private component ECDH public component ECDH private component TLS pre-master secretUserDH public component – WE DH private component – WE ECDH public component – WE ECDH private component – WE TLS pre-master secret – GEAPI return value
Derive SSH keysDerive SSH session and integrity keysKDF (SSH) (Cert. A4978)SSH master secret AES key HMAC keyUserSSH master secret – WE AES key – GR HMAC key – GRAPI return value
Derive TLS keysDerive TLS session and integrity keysKDF (TLS 1.0/1.1) (Cert. A4978) KDF (TLS 1.2) (Cert. A4978) KDF (TLS 1.3) (Cert. A4979)TLS pre-master secret TLS master secret AES key AES GCM key AES GCM IV HMAC keyUserTLS pre-master secret – WE TLS master secret – GE AES key – GR AES GCM key – GR AES GCM IV – GR HMAC key – GRAPI return value
Derive key via HKDFDerive key from HKDFHKDF (Cert. A4978)AES keyUserAES key – GRAPI return value
Derive key via PBKDF2Derive key from PBKDF2PBKDF (Cert. A4978)Passphrase AES key Triple-DES keyUserPassphrase – WE AES key – GR Triple-DES key – GRAPI return value
ServiceDescriptionAlgorithm(s) AccessedRoleIndicator
Perform data encryption (non-compliant)Perform symmetric data encryptionARIA, Blake2, Blowfish, Camellia, CAST, CAST5, ChaCha20, DES, IDEA, RC2, RC4, RC5, SEED, SM4, Triple- DES (non-compliant)UserAPI return value
Perform data decryption (non-compliant)Perform symmetric data decryptionARIA, Blake2, Blowfish, Camellia, CAST, CAST5, ChaCha20, DES, IDEA, RC2, RC4, RC5, SEED, SM4UserAPI return value

*Per FIPS 140-3 Implementation Guidance 2.4.C, the Show Status, Zeroize, and Show Versioning Information services do not require an Approved security Table 9 below lists the non-approved services available to module operators. Table 9 – Non-Approved Services Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 20
ServiceDescriptionAlgorithm(s) AccessedRoleIndicator
Perform MAC operations (non-compliant)Perform message authentication operationsPoly1305, Triple-DES/CMAC (non-compliant for MAC generation)UserAPI return value
Perform hash operation (non- compliant)Perform hash operationMD2, MD4, MD5, RIPEMD, RMD160, SM2, SM3, WhirlpoolUserAPI return value
Perform digital signature functions (non-compliant)Perform digital signature functionsDSA (non-compliant), ECDSA (non-compliant), EdDSA, RSA (non-compliant)UserAPI return value
Perform key encapsulation (non-compliant)Perform key encapsulation functionsRSA (non-compliant)UserAPI return value
Perform key un-encapsulation (non-compliant)Perform key un-encapsulation functionsRSA (non-compliant)UserAPI return value
Perform key wrap (non- compliant)Perform key wrap functionsTriple-DES/CMAC (non- compliant)UserAPI return value
Perform authenticated encryption/decryption (non- compliant)Perform authenticated encryption/decryptionAES-OCBUserAPI return value
Perform random number generation (non-compliant)Perform random number generationANSI X9.31 RNG (with 128-bit AES core)UserAPI return value
Perform key pair generation (non-compliant)Perform key pair generationDSA (non-compliant), ECDSA (non-compliant), EdDSA, RSA (non-compliant)UserAPI return value

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 21

5. Software/Firmware Security All software components within the cryptographic boundary are verified using an Approved integrity technique implemented within the cryptographic module itself. The module implements independent HMAC SHA2-256 digest checks to test the integrity of each library file ; failure of the integrity check on either library file will cause the module to enter a critical error state. The module’s integrity check is performed automatically at module instantiation (i.e., when the module is loaded into memory for execution) without action from the module operator. The CO can initiate the pre-operational tests on demand by re-instantiating the module or issuing the FIPS_selftest() API command. The Ergotron Cryptographic Module is not delivered to end-users as a standalone offering. Rather, it is a pre-built integrated component of Ergotron’s products. Ergotron does not provide end-users with any mechanisms to directly access the module, its source code, its APIs, or any information sent to/from the module. Thus, end-users have no ability to independently load the module onto target platforms. No configuration steps are required to be performed by end-users, and no end-user action is required to initialize the module for operation. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 22

6. Operational Environment The Ergotron Cryptographic Module comprises a software cryptographic library that executes in a modifiable operational environment. The cryptographic module has control over its own SSPs. The process and memory management functionality of the host device’s OS prevents unauthorized access to plaintext private and secret keys, intermediate key generation values and other SSPs by external processes during module execution. The module only allows access to SSPs through its well-defined API. The operational environments provide the capability to separate individual application processes from each other by preventing uncontrolled access to CSPs and uncontrolled modifications of SSPs regardless of whether this data is in the process memory or stored on persistent storage within the operational environment. Processes that are spawned by the module are owned by the module and are not owned by external processes/operators. Please refer to section 2.1 of this document for a list/description of the applicable operational environments. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 23

7. Physical Security The cryptographic module is a software module and does not include physical security mechanisms. Therefore, per ISO/IEC 19790:2012(E) section 7.7.1, requirements for physical security are not applicable. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 24

8. Non-Invasive Security This section is not applicable. There are currently no approved non-invasive mitigation techniques referenced in ISO/IEC 19790:2021 Annex F. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 25
Key/SSP Name/Type KeysStrengthSecurity Function and Cert. NumberGenerationImport / ExportEstablishmentStorageZeroizationUse & Related Keys
AES key (CSP)Between 128 and 256 bitsAES (CBC, CCM, CFB, CTR, ECB, OFB, KW, KWP modes) (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exportedEstablished via TLS or SSH KDFNot persistently stored by the moduleUnload module; Remove powerSymmetric encryption, decryption
AES GCM key (CSP)Between 128 and 256 bitsAES (GCM mode) (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exportedEstablished via TLS or SSH KDFNot persistently stored by the moduleUnload module; Remove powerAuthenticated symmetric encryption, decryption
XTS-AES key (CSP)128 or 256 bitsAES (XTS mode) (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerSymmetric encryption, decryption
AES CMAC key (CSP)Between 128 and 256 bitsAES (CMAC mode) (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerMAC generation, verification
AES GMAC key (CSP)Between 128 and 256 bitsAES (GMAC mode) (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerMAC generation, verification
Triple-DES key (CSP)-Triple-DES (CBC, CFB1, CFB8, CFB64, ECB, OFB modes) (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerSymmetric decryption; key unwrapping
Triple-DES CMAC key (CSP)-Triple-DES (CMAC mode) (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerMAC verification
HMAC key (CSP)112 bits (minimum)HMAC (Cert. A4978) KTS (Cert. A4978)-Imported in plaintext via API parameter Never exportedEstablished via TLS or SSH KDFNot persistently stored by the moduleUnload module; Remove powerKeyed hash
9.1 Keys and Other SSPs

The module supports the keys and other SSPs listed in Table 10. Note that all SSP import and export is electronic and is performed within the Tested OE’s Physical Perimeter (TOEPP). Table 10 – SSPs Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 26
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGenerationImport / ExportEstablishmentStorageZeroizationUse & Related Keys
DSA private key (CSP)112 or 128 bitsDSA (Cert. A4978)Generated via Approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature generation
DSA public key (PSP)112 or 128 bitsDSA (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature verification
ECDSA private key (CSP)Between 112 and 256 bitsECDSA (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature generation
ECDSA public key (PSP)Between 112 and 256 bitsECDSA (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature verification
RSA private key (CSP)Between 112 and 150 bitsRSA (Cert. A4978) KTS (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature generation
RSA public key (PSP)Between 80 and 150 bitsRSA (Cert. A4978) KTS (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDigital signature verification
DH private component (CSP)112 bitsKAS-SSC-FFC (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDH shared secret computation
DH public component (PSP)112 bitsKAS-SSC-FFC (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerDH shared secret computation
ECDH private component (CSP)Between 112 and 256 bitsKAS-SSC-ECC (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerECDH shared secret computation
ECDH public component (PSP) Other SSPsBetween 112 and 256 bitsKAS-SSC-ECC (Cert. A4978)Generated via approved DRBGImported in plaintext via API parameter Exported in plaintext via API parameter-Not persistently stored by the moduleUnload module; Remove powerECDH shared secret computation
Passphrase (PSP)-PBKDF (Cert. A4978)-Imported in plaintext via API parameter Never exported-Not persistently stored by the moduleUnload module; Remove powerInput to PBKDF for key derivation
AES GCM IV (CSP)-AES (GCM mode) (Cert. A4978)Generated in compliance with the provisions of a peer-to-peer industry standard protocol--Not persistently stored by the moduleUnload module; Remove powerInitialization vector for AES GCM

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 27
Key/SSP Name/TypeStrengthSecurity Function and Cert. NumberGenerationImport / ExportEstablishmentStorageZeroizationUse & Related Keys
SSH shared secret (CSP)-KDF (SSH) (Cert. A4978)-Imported in plaintext via API parameter Exported in plaintext via API parameterEstablished via ECC/FFC shared secret computationNot persistently stored by the moduleUnload module; Remove powerDerivation of the AES key and HMAC key used for securing SSH connections
TLS pre-master secret (CSP)-KDF (TLS 1.0/1.1) (Cert. A4978) KDF (TLS 1.2) (Cert. A4978) KDF (TLS 1.3) (Cert. A4979)-Imported in plaintext via API parameter Exported in plaintext via API parameterEstablished via ECC/FFC shared secret computationNot persistently stored by the moduleUnload module; Remove powerDerivation of the TLS master secret
TLS master secret (CSP)-KDF (TLS 1.0/1.1) (Cert. A4978) KDF (TLS 1.2) (Cert. A4978) KDF (TLS 1.3) (Cert. A4979)--Established via TLS KDF (using imported TLS pre-master secret)Not persistently stored by the moduleUnload module; Remove powerDerivation of the AES/AES- GCM key and HMAC key used for securing TLS connections
DRBG entropy input (CSP)-DRBG (Cert. A4978)-Imported in plaintext via API parameter45; Never exported-Not persistently stored by the moduleUnload module; Remove powerEntropy material for DRBG
DRBG seed (CSP)-DRBG (Cert. A4978)Generated using nonce along with DRBG entropy input--Not persistently stored by the moduleUnload module; Remove powerSeeding material for DRBG
DRBG ‘V’ value (CSP)-DRBG (Cert. A4978)Generated--Not persistently stored by the moduleUnload module; Remove powerState values for DRBG
DRBG ‘Key’ value (CSP)-DRBG (Cert. A4978)Generated--Not persistently stored by the moduleUnload module; Remove powerState values for DRBG
9.2 DRBGs

The module implements the following Approved DRBG:

Page 28
Entropy Source(s)Minimum Number of Bits of EntropyDetails
Calling application256256 bits of seed material are provided to the module’s DRBG by the calling application. The calling application and its entropy sources are outside the module’s cryptographic boundary. The calling application shall use entropy sources that meet the security strength required for the CTR_DRBG as shown in NIST SP 800-90Arev1, Table 3. This entropy shall be supplied by means of a callback function. The callback function must return an error if the minimum entropy strength cannot be met.
9.3 SSP Storage Techniques

There is no mechanism within the module’s cryptographic boundary for the persistent storage of SSPs. The module stores DRBG state values for the lifetime of the DRBG instance. The module uses SSPs passed in on the stack by the calling application and does not store these SSPs beyond the lifetime of the API call.

9.4 SSP Zeroization Methods

Maintenance, including protection and zeroization, of any keys and CSPs that exist outside the module’s cryptographic boundary are the responsibility of the end-user. For the zeroization of keys in volatile memory, module operators can unload the module from memory or reboot/power-cycle the host device. Table 11 – Non-Deterministic Random Number Generation Specification ©2025 Ergotron, Inc.

Page 29

10. Self-Tests Both pre-operational and conditional self-tests are performed by the module. Pre-operational tests are performed between the time the cryptographic module is instantiated and before the module transitions to the operational state. Conditional self-tests are performed by the module during module operation when certain conditions exist. The following sections list the self-tests performed by the module, their expected error status, and the error resolutions.

10.1 Pre-Operational Self-Tests

The module performs the following pre-operational self-test(s):

10.2 Conditional Self-Tests

The module performs the following conditional self-tests:

47 CRNGT – Continuous Random Number Generator Test

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 30

To ensure all CASTs are performed prior to the first operational use of the associated algorithm, all CASTs are performed during the module’s initial power-up sequence. The SHA and HMAC KATs are performed prior to the pre-operational software integrity test; all other CASTs are executed after the successful completion of the software integrity test.

10.3 Self-Test Failure Handling

The module reaches the critical error state when any self-test fails. Upon test failure, the module will set an internal flag and enter a critical error state. In this state, the module will no longer perform cryptographic services or output data over the data output interfaces. For any subsequent request for cryptographic services, the module will return a failure indicator. To recover, the module must be re-instantiated by the calling application. If the pre-operational self-tests complete successfully, then the module can resume normal operations. If the module continues to experience self-test failures after reinitializing, then the module will not be able to resume normal operations, and the CO should contact Ergotron, Inc. for assistance.

48 PCT – Pairwise Consistency Test

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 31

11. Life-Cycle Assurance The sections below describe how to ensure the module is operating in its validated configuration, including the following:

11.1 Secure Installation

As the module is an integrated component of the Ergotron’s products, module operators have no ability to independently load the module onto the target platform. The module and its calling application are to install on a platform specified in section 2.1 or one where portability is maintained. Ergotron does not provide any mechanisms to directly access the module, its source code, its APIs, or any information sent between it and the products.

11.2 Initialization

This module is designed to support Ergotron applications, and these applications are the sole consumers of the cryptographic services provided by the module. No end-user action is required to initialize the module for operation; the calling application performs any actions required to initialize the module. The pre-operational integrity test and cryptographic algorithm self-tests are performed automatically via a default entry point (DEP) when the module is loaded for execution, without any specific action from the calling application or the end-user. End-users have no means to short-circuit or bypass these actions. Failure of any of the initialization actions will result in a failure of the module to load for execution.

11.3 Setup

No setup steps are required to be performed by end-users.

11.4 Administrator Guidance

There are no specific management activities required of the CO role to ensure that the module runs securely. However, if any irregular activity is noticed or the module is consistently reporting errors, then Ergotron Customer Support should be contacted. The following list provides additional guidance for module administrators: Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 32
11.5 Non-Administrator Guidance

The following list provides additional policies for non-Administrators:

Page 33

The module also supports internal IV generation using the module’s Approved DRBG. The IV is at least 96 bits in length per section 8.2.2 of NIST SP 800-38D. Per NIST SP 800-38D and scenario 2 of FIPS 140-3 IG C.H, the DRBG generates outputs such that the (key/IV) pair collision probability is less than 2-32. In the event that power to the module is lost and subsequently restored, the calling application must ensure that any AES-GCM keys used for encryption or decryption are re-distributed.

Page 34

12. Mitigation of Other Attacks This section is not applicable. The module does not claim to mitigate any attacks beyond the FIPS 140-3 Level 1 requirements for this validation. Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 35
TermDefinition
AESAdvanced Encryption Standard
ANSIAmerican National Standards Institute
APIApplication Programming Interface
CASTCryptographic Algorithm Self-Test
CBCCipher Block Chaining
CCCSCanadian Centre for Cyber Security
CCMCounter withCipher Block Chaining - Message Authentication Code
CFBCipher Feedback
CKGCryptographic Key Generation
CMACCipher-Based Message Authentication Code
CMVPCryptographic Module Validation Program
COCryptographic Officer
CPUCentral Processing Unit
CSPCritical Security Parameter
CTRCounter
CVLComponent Validation List
DEPDefault Entry Point
DESData Encryption Standard
DHDiffie-Hellman
DRBGDeterministic Random Bit Generator
DSADigital Signature Algorithm
ECBElectronic Code Book
ECCElliptic Curve Cryptography
ECC CDHElliptic Curve Cryptography Cofactor Diffie-Hellman
ECDHElliptic Curve Diffie-Hellman
ECDSAElliptic Curve Digital Signature Algorithm
FFCFinite Field Cryptography
FIPSFederal Information Processing Standard
GCMGalois/Counter Mode
GMACGalois Message Authentication Code

Appendix A. Acronyms and Abbreviations Table 12 provides definitions for the acronyms and abbreviations used in this document. Table 12 – Acronyms and Abbreviations ©2025 Ergotron, Inc.

Page 36
TermDefinition
GPCGeneral-Purpose Computer
HMAC(keyed-) Hash Message Authentication Code
KASKey Agreement Scheme
KATKnown Answer Test
KDFKey Derivation Function
KTSKey Transport Scheme
KWKey Wrap
KWPKey Wrap with Padding
MDMessage Digest
NISTNational Institute of Standards and Technology
OCBOffset Codebook
OEOperational Environment
OFBOutput Feedback
OSOperating System
PBKDFPassword-Based Key Derivation Function
PCTPairwise Consistency Test
PKCSPublic Key Cryptography Standard
PSSProbabilistic Signature Scheme
PUBPublication
RCRivest Cipher
RNGRandom Number Generator
RSARivest Shamir Adleman
SHASecure Hash Algorithm
SHAKESecure Hash Algorithm KECCAK
SHSSecure Hash Standard
SPSpecial Publication
SSCShared Secret Computation
SSPSensitive Security Parameter
TDESTriple Data Encryption Standard
TLSTransport Layer Security
TOEPPTested OE’s Physical Perimeter
XEXXOR Encrypt XOR
XTSXEX-Based Tweaked-Codebook Mode with Ciphertext Stealing

Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 37

Appendix B. Approved Service Indicators This appendix specifies the APIs that are externally accessible and return the Approved security service indicators. Synopsis #include <openssl/service_indicator.h> #include <openssl/ssl.h> int EVP_cipher_get_service_indicator(EVP_CIPHER_CTX *ctx); int DSA_get_service_indicator(DSA * ptr_dsa, DSA_MODES_t mode); int RSA_key_get_service_indicator(RSA * ptr_rsa); int PBKDF_get_service_indicator(); int EVP_Digest_get_service_indicator(EVP_MD_CTX *ctx); int EC_key_get_service_indicator(EC_KEY *ec_key); int CMAC_get_service_indicator(CMAC_CTX *cmac_ctx, CMAC_MODE_t mode); int HMAC_get_service_indicator(HMAC_CTX *ctx); int TLSKDF_get_service_indicator(EVP_PKEY_CTX *tls_ctx); int TLS1_3_kdf_get_service_indicator(EVP_MD *md); int TLS1_3_get_service_indicator(SSL *s); int DRBG_get_service_indicator(RAND_DRBG *drbg); Description These APIs are high-level interfaces that return the Approved security service indicator value based on the parameter(s) passed to them.

Page 38
Page 39

int NID = EVP_CIPHER_CTX_nid(ctx); fprintf(stdout,"EVP_des_ede3_ecb (NID %i) encrypt indicator = %i\n", NID, EVP_cipher_get_service_indicator(ctx)); EVP_CIPHER_CTX_cleanup(ctx); //Decrypt ctx = EVP_CIPHER_CTX_new(); EVP_DecryptInit_ex(ctx, cipher, NULL, key, NULL); EVP_CIPHER_CTX_set_key_length(ctx, 24); EVP_DecryptUpdate(ctx, pltmp, &outLen, citmp, 8); // Check the indicator fprintf(stdout,"EVP_des_ede3_ecb (NID %i) decrypt indicator = %i\n", NID, EVP_cipher_get_service_indicator(ctx)); EVP_CIPHER_CTX_cleanup(ctx); EVP_CIPHER_CTX_free(ctx); } Ergotron Cryptographic Module 1.0 ©2025 Ergotron, Inc.

Page 40

Prepared by: Corsec Security, Inc.

12600 Fair Lakes Circle, Suite 210

Fairfax, VA 22033 United States of America Phone: +1 703 267 6050 Email: info@corsec.com http://www.corsec.com