Fact-checked by Grok 2 weeks ago

PKCS 7

PKCS #7, formally known as Public-Key Cryptography Standards #7: Cryptographic Message Syntax Version 1.5, is a specification that defines a general syntax for representing data to which cryptographic operations—such as digital signatures, encryption, and message digests—have been applied, enabling secure handling of content like digital envelopes and authenticated messages. Developed by RSA Laboratories, it uses Abstract Syntax Notation One (ASN.1) for structure definition and Basic Encoding Rules (BER) for encoding, supporting recursive nesting of protected content and the inclusion of certificates or certificate revocation lists to facilitate verification. This standard provides a flexible framework for interoperability in public-key cryptography applications, ensuring that protected data can be processed in a single pass without requiring multiple decryptions. Initiated in the early 1990s as part of the broader family of standards aimed at promoting adoption, PKCS #7 was first published on November 1, 1993, to extend capabilities beyond earlier protocols like (PEM) while maintaining compatibility. It evolved through collaboration with developers to address needs in secure messaging and data protection, with its Version 1.5 incorporating support for six primary content types: data, signed-data, enveloped-data, signed-and-enveloped-data, digested-data, and encrypted-data. In 1998, Laboratories submitted it to the (IETF) as RFC 2315, an informational document that formalized the syntax for wider dissemination. The IETF later refined and standardized PKCS #7 as the Cryptographic Message Syntax (CMS) in RFC 5652 (2009), enhancing it with features like algorithm-independent key management, support for attribute certificates, and improved handling of key agreement schemes while preserving with existing PKCS #7 implementations. PKCS #7 and its CMS successor remain foundational in protocols such as for signed and encrypted , where it defines the application/pkcs7-mime media type. It is also integral to Authenticode for digitally signing files to verify and in Windows environments. Additional applications include certificate management over CMS (CMC) for operations.

Overview

Definition and Purpose

PKCS #7, formally known as Public-Key Cryptography Standards #7: Version 1.5, defines a generic syntax for data that may have applied to it, such as digital signatures or digital envelopes, thereby enabling the storage of digitally signed and/or enveloped (encrypted) data. This syntax supports a range of mechanisms, including , , and , through structured message formats that encapsulate cryptographic content. The core purpose of PKCS #7 is to promote in systems by standardizing the formatting of signed and encrypted messages, which facilitates secure data exchange in diverse applications like security and handling. It allows for the consistent generation, transmission, and verification of cryptographically protected data across different vendors and implementations, reducing compatibility issues in and message processing. Developed by Laboratories, a division of Data Security, Inc., as part of the broader Public-Key Cryptography Standards () series, PKCS #7 was first publicly released on June 3, 1991, with multiple revisions culminating in version 1.5 on November 1, 1993. This effort addressed the need for uniform message formats in emerging cryptographic protocols during the early 1990s. PKCS #7 served as the foundation for the Internet Engineering Task Force's (IETF) (CMS), which was standardized as its successor to incorporate internet-specific enhancements.

Key Features

PKCS #7 provides a flexible framework for cryptographic messaging through its support for multiple signers and nested signatures within the signed-data content type, enabling parallel signing of any content by multiple parties and allowing one signed message to be embedded within another for layered authentication. This capability is particularly useful for scenarios requiring multi-party verification or chained trust relationships. A distinctive attribute is the ability to embed certificates and certificate revocation lists (CRLs) directly within messages, such as in the signed-data , which includes sets of certificates and CRLs to facilitate validation without external dependencies. This self-contained approach enhances portability and reduces the need for separate certificate exchanges. The standard offers broad algorithmic flexibility, permitting the use of various hash functions (e.g., ), public-key encryption and signature algorithms (e.g., ), and symmetric encryption algorithms (e.g., ), allowing implementations to select appropriate security levels based on context. Later evolutions like extend this to include and other modern options, maintaining compatibility with #7. PKCS #7 supports indefinite-length encoding in its Basic Encoding Rules (BER) formulation for certain content types, enabling single-pass processing and streaming of large data volumes without requiring full content to be buffered in memory. This streaming-friendly design is essential for handling voluminous payloads, such as in secure attachments. All PKCS #7 messages are structured as objects encoded using Distinguished Encoding Rules (DER) or Basic Encoding Rules (BER), ensuring compact, binary-compatible representations that are interoperable across diverse systems and languages. This encoding choice promotes deterministic parsing and unambiguous serialization, critical for cryptographic integrity.

History and Development

Origins in PKCS Series

The () series was initiated by RSA Laboratories, a division of Data Security, Inc., in the late 1980s to accelerate the widespread adoption of interoperable amid the rising demand for secure communications. Between 1988 and 1991, RSA Laboratories developed this suite of vendor-neutral standards in with global developers, aiming to standardize key and protocols while soliciting public input without ceding control over final specifications. PKCS #7, which defines a syntax for cryptographically protected messages, originated with versions 1.0 through 1.3 produced in February and March 1991 by an Laboratories team led by Burton S. Kaliski Jr. This effort was driven by the urgent need for a unified format to encapsulate signed and enveloped data, enabling reliable digital signatures and in distributed systems where prior methods lacked standardization. In the broader PKCS framework, PKCS #7 emerged concurrently with foundational standards like , which specified RSA encryption and signature schemes, and PKCS #6, which extended certificate syntax for better attribute handling. These early documents collectively addressed gaps in public-key infrastructure, with PKCS #7 focusing on message-level syntax to integrate seamlessly with the others for end-to-end security. The initial PKCS #7 draft targeted shortcomings in preexisting ad-hoc formats, such as those in the (PEM) protocol, which were limited to ASCII-encoded text and single signatures unsuitable for evolving MIME-based environments. By introducing support for , multiple signers, and extensible content types, it provided a more robust foundation for secure messaging.

Standardization Process

PKCS #7 was initially developed and published by RSA Laboratories as part of the (PKCS) series. Version 1.0 through 1.3 were distributed internally to participants in RSA Data Security's standards meetings in February and March 1991, followed by version 1.4 as part of the initial public release on , 1991. Version 1.5, released in November 1993, introduced enhancements such as support for multiple signers in signed data structures, expanding its utility for complex cryptographic operations. RSA Laboratories maintained the standard through these revisions until 1997, when the company withdrew from ongoing PKCS maintenance to focus on other priorities. This paved the way for the formation of the IETF in October 1997, which began adapting PKCS #7 into the CMS standard. In 1997, following RSA's withdrawal, the (IETF) adopted PKCS #7 as the foundation for the (CMS), a more generalized and updated standard. This transition culminated in the publication of RFC 2630 in June 1999, which formalized CMS while preserving compatibility with PKCS #7 version 1.5 where possible. RFC 2630 was later obsoleted by RFC 3369 (August 2002), which was obsoleted by RFC 3852 (July 2004), and subsequently by RFC 5652 (September 2009), which refined CMS for broader interoperability and security enhancements. PKCS #7 itself was republished by the IETF as RFC 2315 in March 1998 to document version 1.5 for reference. PKCS #7 played a key institutional role in integrating with established standards, including for bundling certificates in cryptographic exchanges and early versions of for secure email messaging. A significant adoption milestone occurred with its integration into Microsoft's CryptoAPI in , enabling widespread use in software signing and secure communications within enterprise environments. As of 2025, despite the dominance of in modern protocols, PKCS #7 remains referenced in legacy systems for compatibility in areas like code signing and certificate handling.

Message Syntax

Content Types

PKCS #7 defines a set of content types that specify the structure and purpose of cryptographic messages, enabling operations such as signing, , and . These types are identified by ASN.1 object identifiers (OIDs) under the pkcs-7 arc (1.2.840.113549.1.7) and allow for the encapsulation of arbitrary data or other enhanced content types. The standard supports flexibility in selecting cryptographic algorithms for these operations. The primary content types in PKCS #7 are as follows:
Content TypeOIDDescription
data1.2.840.113549.1.7.1Represents arbitrary , such as plain octet strings, without any cryptographic processing applied.
signed-data1.2.840.113549.1.7.2Encapsulates along with digital signatures from one or more signers, including encrypted digests to verify and .
enveloped-data1.2.840.113549.1.7.3Provides by encrypting the and including encrypted symmetric keys for multiple recipients.
signed-and-enveloped-data1.2.840.113549.1.7.4Combines signing and enveloping, where is signed, then encrypted along with the signatures and keys for recipients and signers.
digested-data1.2.840.113549.1.7.5Includes paired with a digest for checking, without signatures.
encrypted-data1.2.840.113549.1.7.6Encrypts using a symmetric key, but without recipient-specific key information, suitable for scenarios where keys are managed separately.
The signed-data type consists of the , a list of supported digest algorithms, optional and certificate revocation lists (CRLs), and signer information that includes the encrypted digest, signer identifier, and optional authenticated attributes such as timestamps. This structure enables multiple signers to apply signatures independently, with each signer's digest computed over the and their specific attributes. In contrast, the enveloped-data type features recipient information for each intended recipient, detailing how the content-encryption key is encrypted using the recipient's public key via methods like or Diffie-Hellman . The encrypted content is produced using a randomly generated symmetric key, ensuring efficient bulk encryption while securing key distribution. A key aspect of PKCS #7 content types is their support for nesting, where enhanced types like signed-data or enveloped-data can encapsulate other content types, such as signed enveloped-data, to compose complex cryptographic operations within a single message.

Core Data Structures

PKCS #7 employs Abstract Syntax Notation One () to define its core data structures, enabling a flexible and extensible framework for cryptographic messaging. At the highest level, the ContentInfo structure serves as the top-level wrapper for all PKCS #7 messages. It is defined in ASN.1 as:
ContentInfo ::= SEQUENCE {
    contentType ContentType,
    content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL
}
Here, contentType is an that identifies the type of content encapsulated (such as signed-data or enveloped-data), while the content field holds the actual data, whose structure is determined by the specified contentType. This design allows PKCS #7 to support various content types within a unified syntax, with the optional explicit tagging ([0] EXPLICIT) providing context-specific encoding. Central to signed messages is the SignerInfo structure, which encapsulates the information for a single signer. Its ASN.1 definition is:
SignerInfo ::= SEQUENCE {
    version Version,
    issuerAndSerialNumber IssuerAndSerialNumber,
    digestAlgorithm DigestAlgorithmIdentifier,
    authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
    digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
    encryptedDigest EncryptedDigest,
    unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
}
The field is an (1 if the signer's is , or 3 if 3). issuerAndSerialNumber identifies the signer's via its name and . The digestAlgorithm specifies the hashing algorithm used (e.g., ), while authenticatedAttributes and unauthenticatedAttributes are sets of optional attributes, with implicit tagging for efficiency ([0] IMPLICIT and [1] IMPLICIT). Authenticated attributes are included in the signature computation, ensuring their integrity, whereas unauthenticated attributes are not. The digestEncryptionAlgorithm denotes the algorithm for signing the digest (e.g., ), and encryptedDigest is the OCTET STRING containing the signer's . A key example of an authenticated attribute is the message-digest attribute, which holds the hash value of the content, computed as the result of applying the specified digest algorithm to the content octets. For key management in enveloped or signed-and-enveloped data, the RecipientInfo structure facilitates secure key delivery to recipients. It is defined as:
RecipientInfo ::= SEQUENCE {
    version Version,
    issuerAndSerialNumber IssuerAndSerialNumber,
    keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
    encryptedKey EncryptedKey
}
The version is typically 0, issuerAndSerialNumber identifies the recipient's certificate, keyEncryptionAlgorithm specifies the encryption method for the session key (e.g., ), and encryptedKey is the OCTET STRING of the encrypted content-encryption key. Multiple RecipientInfo instances can be included to support different recipients. Attributes in PKCS #7 follow the X.501 standard, defined as Attributes ::= SET OF Attribute, where each Attribute is a SEQUENCE of type, values, and optional context. Authenticated attributes, such as signing time or content type, are hashed and signed to provide , while unauthenticated ones, like countersignatures, offer additional without protection. For instance, the message-digest attribute ensures the receiver can verify the content's by recomputing the hash and comparing it to the signed value. PKCS #7 messages are encoded using Basic Encoding Rules (BER) as the general encoding format. Distinguished Encoding Rules (DER), a canonical subset of BER, are required for the inner content of signed-data, signed-and-enveloped-data, and digested-data types to ensure unambiguous representation of structures. DER uses definite-length encoding, which may require a two-pass process for length determination in some generators. The standard supports implicit tagging throughout, as seen in attribute and fields, to reduce encoding overhead and improve efficiency without altering the data's semantic meaning. Conceptually, the hash computation in PKCS #7 involves generating a digest by applying the chosen to the DER-encoded content octets (excluding the identifier and length fields). If authenticated attributes are present, the digest is computed over their complete DER-encoded value instead. This digest is then encrypted with the signer's private to produce the signature in encryptedDigest, allowing verification by decrypting with the public and matching against a recomputed digest. This process ensures and for the signed elements.

Applications

Secure Email and S/MIME

PKCS#7 is integral to secure messaging via its foundational role in the Secure/Multipurpose Mail Extensions () standard, enabling digital signatures and encryption for MIME-based communications. In , PKCS#7 structures provide the cryptographic framework for protecting content against unauthorized access and alterations, with the signed-data content type used for clear-signed messages that preserve readability while verifying sender authenticity, and the enveloped-data content type applied for encrypting messages to ensure confidentiality for specified recipients. This integration allows to leverage PKCS#7's robust syntax for embedding certificates, signatures, and encrypted keys directly within payloads. The signing and encryption process in S/MIME begins with the sender preparing the email body as a MIME entity, computing a cryptographic digest or signature using their private key, and encapsulating the result in a PKCS#7 object. For clear-signed messages, this PKCS#7 signed-data structure is attached as a multipart/signed MIME part alongside the original body, enabling non-S/MIME recipients to view the content while allowing verification by capable clients. In encryption scenarios, the enveloped-data structure wraps the content with recipient public keys, producing an application/pkcs7-mime body part that obscures the message until decrypted with the corresponding private keys. These mechanisms deliver key security benefits, including via verifiable digital signatures that bind the sender to the message and integrity assurance by detecting any post-signature modifications. version 3, formalized in RFC 2633 in 1999, explicitly mandated compatibility with PKCS#7 formats to ensure interoperability with existing implementations, though contemporary version 4.0 (RFC 8551) has transitioned to the (CMS) as its core, maintaining full with PKCS#7 version 1.5 structures. Practical adoption is evident in widely used email clients; for example, Microsoft Outlook employs PKCS#7 enveloped-data and signed-data for S/MIME encryption and signing of attachments and messages, while Mozilla Thunderbird supports these structures for secure email handling through its built-in S/MIME capabilities.

Code Signing and Software Distribution

PKCS#7's signed-data content type forms the foundation of Microsoft Authenticode, a code-signing technology that embeds digital signatures, including timestamps, within Portable Executable (PE) files such as .exe executables and .dll libraries to authenticate software origin and integrity. This embedding occurs in non-executable sections of the PE file, where the PKCS#7 structure encapsulates the hashed binary content, the signer's certificate chain, and optional attributes like timestamps, ensuring the signature remains attached to the file during distribution. Authenticode signatures are also applied to catalog files (.cat) using detached PKCS#7 signed-data, which include file hashes for verifying multi-file packages without altering the originals. The signing process begins with the developer obtaining a code-signing from a trusted (CA), such as VeriSign, which binds the publisher's identity to the public key. Using tools like SignTool, the developer computes a hash of the binary (typically with SHA-256) and signs it with the corresponding private key, generating a PKCS#7 signed-data object that is then appended to the PE file. To enhance longevity against certificate expiration, timestamps are added via countersignatures from a Time-Stamp Authority (TSA), as defined in RFC 3161, where the TSA creates a PKCS#7 signed-data token over the original signature's hash and signing time, confirming the signing occurred before the certificate's validity end. Verification of an Authenticode signature involves multiple steps: the system recomputes the file hash and compares it against the decrypted value using the signer's public from the embedded ; it then validates the certificate chain up to a trusted root and checks revocation status via Certificate Revocation Lists (CRLs) or (OCSP). If a countersignature is present, its validity is similarly checked against the TSA's , ensuring the software was signed at a verifiable time. This process has been integral to Windows driver signing, where kernel-mode components like ci.dll enforce Authenticode validation to prevent loading of tampered or unsigned drivers, a requirement solidified with in 2007 but rooted in earlier implementations. By detecting any modifications to the signed binary through hash mismatches, PKCS#7-based Authenticode prevents tampering and injection during , thereby building user trust in the publisher. For instance, employs PKCS#7 signed-data in the adbe.pkcs7.detached format to embed digital s in PDF documents, hashing the document content (excluding the signature itself) and encrypting the hash to maintain integrity against alterations post-signing. In software update scenarios, PKCS#7's enveloped-data content type supports secure by encrypting symmetric keys for recipients, enabling confidential delivery of update payloads.

File Formats

Common Extensions

PKCS#7 messages are commonly stored using specific file extensions that indicate their content type and encoding, with conventions originating from implementations in the 1990s. The .p7b and .p7c extensions are used for Base64-encoded PKCS#7 files containing s or signed data without the original content, often serving as chain bundles. In contrast, .p7m files represent signed-and-enveloped data, encapsulating both the signed message and encryption for secure email transmission, and are particularly prevalent in contexts for digitally signed communications. The .p7s extension denotes detached signatures, which include only the PKCS#7 signed-data structure for verifying separately stored content. PKCS#7 files may be encoded in format, which uses with header and footer markers like "-----BEGIN PKCS7-----", or in DER format, which is the binary equivalent without such wrappers.

Encoding and Usage

PKCS#7 structures are encoded using the Distinguished Encoding Rules (DER) of , providing a compact format suitable for storage and transmission. This encoding ensures deterministic representation of the , with message digests computed over the DER-encoded content octets. For text-based applications, PKCS#7 data is often converted to () format by -encoding the DER bytes and enclosing them in ASCII armor with headers like -----BEGIN PKCS7----- and -----END PKCS7-----, facilitating compatibility with and configuration files. Practical implementation relies on established tools and APIs. The toolkit supports PKCS#7 operations through commands like openssl cms -sign, which generates signed messages by specifying input data, signer certificates, and optional detached mode via the -outform DER or flags. Similarly, libraries such as BouncyCastle provide (CMS) APIs, enabling programmatic creation and verification of PKCS#7 structures using classes such as CMSSignedData from the org.bouncycastle.cms package. Common usage pitfalls include the choice between detached and opaque signing modes. In detached signing, the original content is omitted from the PKCS#7 SignedData structure, requiring separate provision of the data for , which aids in scenarios like but demands careful handling to avoid mismatches. Opaque signing embeds the content directly within the structure, simplifying bundled transmission but increasing file size and potentially complicating updates to the signed data. Interoperability challenges often stem from algorithm selections, such as employing deprecated digests like or , which may fail validation in modern systems enforcing stronger primitives like SHA-256, or mismatches in algorithms that violate compatibility rules. A representative example is exporting certificate chains from the Windows Certificate Store. Using the Certificate Manager (certmgr.msc), users can select a , choose "Export" under All Tasks, and specify PKCS#7 format (.p7b) without the private key, producing a SignedData structure containing the end-entity and its for secure distribution to clients or servers. This method ensures integrity without exposing sensitive keys, commonly used in PKI deployments.

Relation to CMS

Evolution from PKCS 7

The IETF began adopting PKCS #7 in 1997 through discussions in working groups like PKIX, leading to its formal standardization as the (CMS) to integrate it into protocols. This effort culminated in 2630, published in June 1999, which defined CMS version 1 as the IETF's standards-track specification derived from PKCS #7 version 1.5. CMS was further updated and consolidated in 5652, published in September 2009, which obsoleted prior versions and incorporated errata to enhance clarity and security. Subsequent RFCs, such as 6268 (2011) for updated modules and 9629 (2024) for (KEM) support, have further enhanced CMS for modern cryptographic needs including post-quantum resistance. The primary motivations for evolving PKCS #7 into were to provide broader support for cryptographic algorithms beyond those initially defined by Laboratories and to establish an open independent of proprietary influences. PKCS #7, originally developed by in 1993, was limited in its algorithm scope, such as lacking support for mechanisms like OAEP key transport or encryption. By contrast, CMS extended these capabilities while maintaining with PKCS #7 version 1.5 wherever possible, ensuring that existing implementations could interoperate with minimal disruption. CMS retains a high degree of compatibility with PKCS #7, allowing it to be used seamlessly in modern protocols for secure communications. This evolution has facilitated widespread adoption, with legacy systems continuing to rely on PKCS #7 for compatibility reasons, while new implementations preferentially use to leverage its enhanced features and IETF standardization.

Key Differences

CMS introduces several new content types not present in PKCS #7, including authenticated-enveloped-data, which provides both confidentiality and integrity protection for message content using algorithms, as defined in 5083. Additionally, CMS supports , allowing for the compression of message content prior to cryptographic operations to reduce transmission size, specified in 3274. In terms of recipient mechanisms, CMS extends key agreement support to include modern schemes like Diffie-Hellman (ECDH) through the KeyAgreeRecipientInfo structure, enabling more flexible key derivation processes beyond the key transport methods predominant in PKCS #7. Regarding algorithms, offers greater extensibility for , accommodating post-quantum options through the assignment of new object identifiers (OIDs) for algorithms resistant to quantum attacks, such as those standardized by NIST in recent years. In contrast, PKCS #7 is constrained to algorithms from the , including insecure options like for hashing and limited signature schemes, without provisions for emerging quantum-safe alternatives. Syntax-wise, CMS employs a stricter ASN.1 specification based on ITU-T standards from the late 1980s to 2002, mandating explicit tagging in certain structures to ensure unambiguous parsing, such as in the SignedData and EnvelopedData types. Furthermore, CMS obsoletes the use of indefinite-length encoding in many cases, requiring definite-length DER encoding to promote and avoid parsing ambiguities that were permissible under PKCS #7's more permissive BER rules. In terms of compatibility, most PKCS #7 messages can be parsed and processed by -compliant implementations due to syntactic alignment and backward-compatible OIDs for core content types like data, signed-data, and enveloped-data. However, the reverse is not true; CMS messages incorporating new features or OIDs, such as those for authenticated-enveloped-data or post-quantum algorithms, cannot be reliably interpreted by legacy PKCS #7 systems, potentially leading to rejection or errors.

References

  1. [1]
    RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
    This document describes a general syntax for data that may have cryptography applied to it, such as digital signatures and digital envelopes.
  2. [2]
    [PDF] An Overview of the PKCS Standards
    The PKCS standards are offered by RSA Laboratories to developers of computer systems employing public-key technology. It is RSA Laboratories' intention to.
  3. [3]
    RFC 5652 - Cryptographic Message Syntax (CMS) - IETF Datatracker
    RFC 5652 describes the Cryptographic Message Syntax (CMS), used to digitally sign, digest, authenticate, or encrypt message content. It is an encapsulation ...
  4. [4]
    RFC 2311 - S/MIME Version 2 Message Specification
    ... PKCS #7 [PKCS-7]. This memo also defines the application/pkcs7-mime MIME type that can be used to transport those body parts. This memo also defines how to ...
  5. [5]
    [DOC] Windows Authenticode Portable Executable Signature Format
    Mar 21, 2008 · Authenticode is based on Public-Key Cryptography Standards (PKCS) #7 signed data and X. 509 certificates to bind an Authenticode-signed binary ...Introduction · Overview · Authenticode Timestamp · Extracting and Verifying PKCS...
  6. [6]
    RFC 2797 - Certificate Management Messages over CMS
    This document defines a Certificate Management protocol using CMS (CMC). This protocol addresses two immediate needs within the Internet PKI community.
  7. [7]
    What are Public-Key Cryptography Standards (PKCS)? - TechTarget
    Jan 11, 2022 · PKCS #7: Cryptographic Message Syntax Standard. This standard defines a generic syntax for cryptographic messages. It is superseded by ...
  8. [8]
    [PDF] PKCS #7: Cryptographic Message Syntax Standard - IPsec.pl
    Copyright 1991–1993 RSA Laboratories, a division of RSA Data Security, Inc. ... Version 1.4 is part of the June 3, 1991 initial public release of PKCS.
  9. [9]
    RFC 5652: Cryptographic Message Syntax (CMS)
    RFC 5652 describes the Cryptographic Message Syntax (CMS), used to digitally sign, digest, authenticate, or encrypt message content. It is an encapsulation  ...
  10. [10]
    RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5
    This document describes a general syntax for data that may have cryptography applied to it, such as digital signatures and digital envelopes.Missing: features | Show results with:features
  11. [11]
    [PDF] Public-Key Cryptography Standards: PKCS
    The PKCS standards, developed by RSA Laboratories (a Division of RSA Data Security Inc.) in cooperation with secure systems developers worldwide for the purpose ...Missing: 1988-1991 | Show results with:1988-1991
  12. [12]
    ITU-T A.5 reference justification
    7. ... Kaliski, Jr., "An Overview of the PKCS Standards",/ RSA Data Security, Inc., 3 Jun 1991./ / [PKC07] RSA Laboratories, "PKCS #7: Cryptographic Message ...
  13. [13]
    RFC 2986: PKCS #10: Certification Request Syntax Specification ...
    ... RSA Laboratories is withdrawing support for PKCS #6. Note - The reason for using version 1.7 for this document is to avoid confusion with [6], which is ...
  14. [14]
    RFC 2630: Cryptographic Message Syntax
    This document describes the Cryptographic Message Syntax. This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary messages.
  15. [15]
    [PDF] Windows 2000 - Microsoft Download Center
    Base crypto library is CryptoAPI which brings support for all algorithms listed. PKCS #1, PKCS #5, PKCS #7, PKCS #10, PKCS #12, X509. SSL/TLS, Kerberos. IPSEC.
  16. [16]
  17. [17]
  18. [18]
  19. [19]
  20. [20]
  21. [21]
  22. [22]
  23. [23]
    RFC 8551 - Secure/Multipurpose Internet Mail Extensions (S/MIME ...
    RFC 8551 defines S/MIME 4.0, which provides a way to send secure MIME data using digital signatures for authentication and encryption for confidentiality.Missing: integration | Show results with:integration
  24. [24]
    [MS-OXOSMIME]: Opaque-Signed and Encrypted S/MIME Message
    Oct 13, 2020 · An opaque-signed message or encrypted message in the Internet e-mail message format is identified as a MIME message that consists of exactly one MIME entity.
  25. [25]
    Authenticode Digital Signatures - Windows drivers - Microsoft Learn
    Jul 11, 2025 · Authenticode is a Microsoft code-signing technology that identifies the publisher and verifies software integrity using digital signatures and ...Missing: PKCS# 7
  26. [26]
    Time Stamping Authenticode Signatures - Win32 apps
    Jan 26, 2022 · Authenticode time stamping is based on standard PKCS #7 countersignatures. Signing tools from Microsoft allow developers to affix time stamps at the same time.<|control11|><|separator|>
  27. [27]
    RFC 3161 Time-Stamp Protocol (TSP) - IETF
    The time-stamp token MUST NOT contain any signatures other than the signature of the TSA. The certificate identifier (ESSCertID) of the TSA certificate MUST be ...
  28. [28]
    Supported Standards — Acrobat Desktop Digital Signature Guide
    Jul 23, 2025 · RFC 2315, PKCS #7: Cryptographic Message Syntax, Version 1.5. A format used for creating a digital signature object which is embedded in a ...
  29. [29]
    What Is the PKCS7 File Format? | Baeldung on Computer Science
    Aug 8, 2024 · PKCS7, known as Cryptographic Message Syntax (CMS), is a universal message format for data sharing, signing, and encrypting communications.
  30. [30]
    A SSL Certificate File Extension Explanation: PEM, PKCS7, DER ...
    Certificates in P7B/PKCS#7 formats are encoded in Base64 ASCII encoding and they usually have .p7b or .p7c as the file extension. The thing that separates PKCS# ...
  31. [31]
    PKCS #7 Cryptographic Message File - PRONOM | Search by format
    Nov 16, 2023 · PKCS #7 is one of the family of standards called Public-Key Cryptography Standards (PKCS) devised and published by RSA Security Inc ...
  32. [32]
    What is P7M File Extension: How to Open and Read It? - SSLInsights
    P7M is a digital signature file format used to electronically sign documents in Russia and some Eastern European countries. It contains the original document ...
  33. [33]
    PEM, DER, CRT, and CER: X.509 Encodings and Conversions
    Jul 7, 2020 · This guide points out the major differences between PEM and DER files and common filename extensions associated with them.Missing: origin | Show results with:origin
  34. [34]
    pkix-minutes-97aug.txt - FTP Directory Listing
    The proposal calls for use of PKCS 7 as security encapsulation protocol and PKCS 10 as certificate management protocol. The current version of PKCS 10 is ...
  35. [35]
    RFC 2630 - Cryptographic Message Syntax - IETF Datatracker
    This document describes the Cryptographic Message Syntax. This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary messages.
  36. [36]
  37. [37]
  38. [38]
  39. [39]
  40. [40]
  41. [41]
  42. [42]