O nome vem do IEEE Std 1363-2000. Os tamanhos são fixos: 64 bytes para P-256 e secp256k1, 96 para P-384, 132 para P-521. A alternativa é o DER: uma SEQUENCE de dois INTEGERs mínimos em big-endian, cada um com um 0x00 à frente quando o bit mais alto está ligado, o que dá 70–72 bytes na P-256 e é variável por definição.
O formato bruto é usado pelo ES256 do JWS e similares (RFC 7518 §3.4), pelo COSE (RFC 9053 §2.1), pelo WebCrypto, pelo CKM_ECDSA do PKCS #11, pelo Windows CNG e pelo Apple CryptoKit. O DER é usado pelo X.509 e pelo CMS, pelo CertificateVerify do TLS, pelas assinaturas de asserção do WebAuthn, pelo OpenSSL, pelo SHA256withECDSA do Java, pelo ecdsa.SignASN1 do Go e pelo crypto.sign() do Node. Para alternar: no Node, dsaEncoding: "ieee-p1363"; no Java, SHA256withECDSAinP1363Format; no Python, encode_dss_signature e decode_dss_signature.
As conversões precisam aplicar o padding: r ou s tem menos de 32 bytes em cerca de uma assinatura a cada 128, e manter o byte de sinal do DER ou descartar o padding gera assinaturas “brutas” de 63 ou 65 bytes que falham em outros lugares. O conversor DER ⇄ bruto mostra as duas formas.