Skip to main content
Crypto es una implementación interna avanzada. No es necesaria para las operaciones habituales como publicar, obtener feeds o notificaciones. Consúltala cuando quieras construir verificaciones de firma o implementaciones de OAuth de bajo nivel del AT Protocol.

Descripción general de la criptografía en AT Protocol

Para construir una red social descentralizada, AT Protocol adopta ampliamente la criptografía de curva elíptica (ECC). Sus usos principales son los siguientes.

Clases de par de claves

AbstractKeypair

AbstractKeypair es la clase base común para P256 / K256. Internamente utiliza phpseclib3.

P256 (secp256r1)

Se usa en OAuth (DPoP / Client Assertion). OAuthKey hereda de P256 y carga la clave privada desde config('bluesky.oauth.private_key'). También existe un comando Artisan para generar una nueva clave privada OAuth.

K256 (secp256k1)

Se usa para la autenticación del Feed Generator y el Labeler. El PDS / Relay de Bluesky verifica las firmas con esta curva.

DidKey

La clase DidKey codifica y decodifica claves públicas al formato did:key.

Qué es el formato did:key

En AT Protocol, las claves públicas se representan como una cadena did:key:z.... Consiste en un identificador de curva más la clave pública comprimida, codificados en multibase con Base58btc.

Codificar clave pública a did:key

Parsear la clave pública desde el DID Document


JsonWebToken (JWT)

La clase JsonWebToken proporciona codificación y decodificación de JWT.

DPoP (Demonstrated Proof of Possession)

DPoP es un mecanismo de seguridad que vincula el token de acceso OAuth a un par de claves específico del cliente. Previene ataques de replay del token. La clase DPoP se usa internamente y normalmente no necesitas invocarla directamente. El middleware de OAuthAgent añade automáticamente la cabecera DPoP.

Signature (conversión de formatos de firma)

AT Protocol utiliza un formato de firma compacto de 64 bytes, pero phpseclib3 devuelve el formato ASN.1 DER. La clase Signature se encarga de esta conversión.

JsonWebKey

JsonWebKey es la clase que representa un JWK (JSON Web Key). Se usa para generar las pruebas DPoP.

OAuthKey

OAuthKey es una clase de clave específica de OAuth que hereda de P256 y utiliza el valor de config('bluesky.oauth.private_key') como clave privada.
Normalmente se gestiona automáticamente dentro de Bluesky Socialite.

Enlaces de referencia

Source: src/Crypto/
Última modificación el 13 de julio de 2026