Public key cryptography is used in several aspects of atproto ("AT Protocol"). This short, informal, not-very-official document clarifies some details of which specific systems, keys, serialization formats, and signing/verification procedures are used.
For folks who are already familiar with atproto, the quick things to note are:
- yes, it is expected for everybody to support two curve types
- take the SHA-256 hash of repo commit nodes before signing/verifying them
- depending on library/language used,
p256
may have quirks with "compressed" encoding - yes, DID documents do require two similar-but-different encodings for public keys (
did:web
andmultibase
)