Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
PSS signature with RSA public key. The public key is formatted as a X.509 SubjectPublicKeyInfo block, as in CRX₂. In the common case of a developer key proof, the first 128 bits of the SHA-256 hash of the public key must equal the crx_id.
ECDSA signature, using the NIST P-256 curve. Public key appears in named-curve format. The pinned algorithm will be this, at least on 2017-01-01.
A verified contents file containing signatures over the archive contents. The verified contents are encoded in UTF-8 and then GZIP-compressed. Consult https://source.chromium.org/chromium/chromium/src/+/main:extensions/browser/verified_contents.h for information about the verified contents format.
The binary form of a SignedData message. We do not use a nested SignedData message, as handlers of this message must verify the proofs on exactly these bytes, so it is convenient to parse in two steps. All proofs in this CrxFile message are on the value "CRX3 SignedData\x00" + signed_header_size + signed_header_data + archive, where "\x00" indicates an octet with value 0, "CRX3 SignedData" is encoded using UTF-8, signed_header_size is the size in octets of the contents of this field and is encoded using 4 octets in little-endian order, signed_header_data is exactly the content of this field, and archive is the remaining contents of the file following the header.
This is simple binary, not UTF-8 encoded mpdecimal; i.e. it is exactly 16 bytes long.