ecp-testing-without-1c

Tests the UAPKI digital-signature stack of SimplyAddinConnect without a 1C host.

Updated May 18, 2025
One-click install
npx skills add https://github.com/VSydorenko/SimplyAddinConnect --skill ecp-testing-without-1c-vsydorenko
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ecp-testing-without-1c
Source: https://github.com/VSydorenko/SimplyAddinConnect/tree/main/.claude/skills/ecp-testing-without-1c
Command: npx skills add https://github.com/VSydorenko/SimplyAddinConnect --skill ecp-testing-without-1c-vsydorenko

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Running the digital-signature (ECP) chain of a 1C native component normally requires launching the 1C:Enterprise platform, which makes automated and CI testing impractical. This Skill explains how to exercise the full UAPKI crypto stack (INIT, OPEN, SELECT_KEY, SIGN, VERIFY) deterministically without any 1C host, using a static-kernel selftest and a native host that emulates 1C through the IComponentBase interface. ## Core Features & Use Cases - Four-level test pyramid (L0-L3): L0 checks DLL export invariants with dumpbin, L1 runs JSON scenarios against the statically linked UAPKI kernel via uapki_selftest.exe, L2/L3 drive the main DLL through native_host.exe exactly as 1C would call it. - Offline signing and verification: Uses the bundled test key test-diia.p12 with offline mode and ignoreCertStatus options, plus STRUCT-mode VERIFY for expired certificate chains. - Cross-validation against reference signatures: Case 5 verifies signatures produced by independent PRRO/DFS reference tools, skipping gracefully when the reference directory is unavailable. - Use Case: A CI pipeline runs run_tests.ps1 after a change to the crypto driver; the script builds the test executables if missing, executes all scenarios, and returns a non-zero exit code on any failure. ## Quick Start Ask the assistant to run the UAPKI crypto test levels with run_tests.ps1 for the x64 build and interpret any failing scenario or native_host case.

Frequently Asked Questions about ecp-testing-without-1c

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test 1C native component signing without 1C installed?

Run run_tests.ps1, which builds and executes uapki_selftest.exe against the statically linked UAPKI kernel and native_host.exe against the main DLL. native_host loads the DLL with LoadLibraryW and calls the component through IComponentBase exactly as 1C would, so no 1C installation is needed.

How to run UAPKI offline signing tests with a test key?

Use the bundled test-diia.p12 key with password testpassword, pass "offline": true in INIT and "ignoreCertStatus": true in SIGN options. The test certificate chain is intentionally expired, so these offline flags are required for validation to succeed.

Why does CAdES-T timestamping fail in offline mode?

CAdES-T requires a network call to a timestamping service, which offline mode disables. The test suite expects this failure with error code 4120 (RET_UAPKI_OFFLINE_MODE) marked via expectError in the scenario.

Can I run multiple UAPKI INIT sessions in one test process?

No. The UAPKI kernel is a process-level singleton with a single global active key, so each L1 scenario runs as a separate process in its own temporary directory. Attempting repeated INIT calls in one process leaks state between tests.

What happens when PRRO reference signature files are missing?

The L3 cross-validation case (native_host case 5) reports SKIP instead of failure when the reference directory is unavailable. The directory is set via the prroDir argument or the PRRO_DOCS_DIR environment variable.