Skip to main content
Crypto is een geavanceerde interne implementatie. Voor gewone taken zoals posten, feeds ophalen en notificaties heb je deze niet nodig. Raadpleeg dit onderdeel als je low-level handtekeningverificatie voor het AT Protocol of een eigen OAuth-implementatie bouwt.

Overzicht van cryptografie in het AT Protocol

Het AT Protocol gebruikt overal elliptische-krommecryptografie (ECC) om een gedecentraliseerd sociaal netwerk mogelijk te maken. De belangrijkste toepassingen zijn:

Sleutelpaarklassen

AbstractKeypair

AbstractKeypair is de gemeenschappelijke basisklasse voor P256/K256. Intern wordt phpseclib3 gebruikt.

P256 (secp256r1)

Wordt gebruikt voor OAuth (DPoP / Client Assertion). OAuthKey erft van P256 en laadt de privésleutel uit config('bluesky.oauth.private_key'). Er is ook een Artisan-command om een nieuwe OAuth-privésleutel te genereren.

K256 (secp256k1)

Wordt gebruikt voor authenticatie van Feed Generators en Labelers. De PDS/Relay van Bluesky verifieert handtekeningen met deze kromme.

DidKey

De DidKey-klasse encodeert en decodeert publieke sleutels in het did:key-formaat.

Wat is het did:key-formaat?

In het AT Protocol wordt een publieke sleutel weergegeven als een string van de vorm did:key:z.... Dit is de publieke sleutel met een kromme-identifier, multibase-geëncodeerd met Base58btc.

Een publieke sleutel encoden als did:key

Een publieke sleutel parsen uit een DID Document


JsonWebToken (JWT)

De JsonWebToken-klasse biedt JWT-encoding en -decoding.

DPoP (Demonstrated Proof of Possession)

DPoP is een beveiligingsmechanisme dat een OAuth-accesstoken bindt aan een specifiek client-sleutelpaar. Het voorkomt replay-aanvallen met tokens. De DPoP-klasse wordt intern gebruikt; normaal hoef je deze niet rechtstreeks aan te roepen. De OAuthAgent-middleware voegt automatisch DPoP-headers toe.

Signature (conversie van handtekeningformaten)

Het AT Protocol gebruikt een compact handtekeningformaat van 64 bytes, maar phpseclib3 geeft het ASN.1 DER-formaat terug. De Signature-klasse verzorgt deze conversie.

JsonWebKey

JsonWebKey is een klasse die een JWK (JSON Web Key) representeert. Deze wordt gebruikt bij het genereren van DPoP-proofs.

OAuthKey

OAuthKey is een OAuth-specifieke sleutelklasse die erft van P256 en de waarde van config('bluesky.oauth.private_key') als privésleutel gebruikt.
Normaal wordt dit automatisch afgehandeld binnen Bluesky Socialite.

Referenties

Source: src/Crypto/
Laatst gewijzigd op 6 september 2026