> For the complete documentation index, see [llms.txt](https://docs.aeterna.works/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aeterna.works/features/docs-verification.md).

# Docs Verification

This feature allows to check the documents of certification. This works by utilizing the ECDSA — [Elliptic Curve Digital Signature Algorithm](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf).The core idea is that you can easily check whether a message was signed by the user's private key by only knowing their public key, the message they signed, and the signature they produced. The check returns `false` or `true`.The way verification works in Aeterna is this:

**Integrity**

The manifest that the users are signing in contains the `original_hash` of the document, the verification page calculates this hash again (without the stamp page and attachments), and then compares the one in manifest against the one it calculated. If they match — the document was not tampered, otherwise the document was changed after the signing or something unexpected happened.

**Signatures**

The document itself contains the signatures of all involved parties that signed the manifest, which contains this:

1. Timestamp
2. File name
3. Original hash (before compression and encryption)
4. Expiry (if set)
5. Aeterna app version
6. Statement
7. Hashing algorithm (Keccak256 as of now)
8. Uploader address
9. Designated co-signer addresses

The verification page extracts the manifest, signatures and wallet addresses, then takes the signature (r, s, v) and applies ECDSA verification algorithm which yields the public keys, which after hashing yeild the EVM wallet addresses (last 20 bytes of the hash). If the wallet addreses match to the ones in manifest — the verification is successful, otherwise it is not.We also provide the direct link and convenient tools so you can verify the signatures yourself using public tools like [Etherscan](https://etherscan.io/verifiedSignatures).The video of successful verification:

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyZ5q78fKbNzI8DhXbgqt%2Fuploads%2FLRGevLFEDKdsa0RQg2cp%2Fdoc_verification.mp4?alt=media&token=aab498d3-7691-4ef2-87c4-a90fab970f68>" %}
