poka.sh

Docs

P7S

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

PKCS#7 / CMS Preview.

At a glance

Purpose A PKCS#7 / CMS message (.p7s, .p7m, .p7c): a signature, signed or enveloped data with certificates and signer information.
Extensions .p7s
Poka parser poka-p7s
Viewer poka-tree-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B2 Broad (see Breadth tiers)

How much Poka reads

B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.

Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-26: read parsers/poka-p7s/src/main.rs (1051 lines) and plugin.json. Four unit tests, including parses_corpus_p7b over the corpus sample.p7b and generated SignedData in DER and PEM. Covers .p7s, .p7m and .p7c. The tree shows the content type, encoding, version, the encapsulated content type, whether the content is detached, the digest algorithms and CRL count, every certificate (subject, issuer, expiry, serial) and every signer (identity, digest and signature algorithms). Judgement: B2: the signature structure is decoded; the gaps are the content, attributes and verification.

What Poka does not read

  • Signatures are not verified
  • Signed attributes (signing time, message digest, content type) are not shown (judgement from the code)
  • The encapsulated content (in .p7m) is not shown
  • Enveloped (encrypted) data shows its type only; nothing is decrypted

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • der-parser (used; MIT OR Apache-2.0; Rust)
  • x509-parser (used; MIT OR Apache-2.0; Rust)
  • cms (RustCrypto formats) (candidate; Apache-2.0 OR MIT; Rust; https://lib.rs/crates/cms) — Pure Rust Cryptographic Message Syntax (RFC 5652) types including SignedData; latest stable 0.2.3, 0.3.0 is a pre-release.
  • Bouncy Castle (bcpkix) (candidate; MIT; Java; https://github.com/bcgit/bc-java) — bcpkix covers CMS (CMSSignedData for PKCS#7-style signatures); repository says licence is based on MIT X Consortium.

Sources

  • parsers/poka-p7s/src/main.rs
  • parsers/poka-p7s/plugin.json