{"id":"pem-envelope-format","version":"1.0.0","description":"Format a label and lowercase hex bytes as a canonical RFC 7468 PEM envelope.","supported_operations":["format hex bytes as a pem envelope","wrap raw bytes in pem begin and end lines","canonical 64 column pem rendering","build an rfc 7468 textual message","encode bytes as pem armor","render a strict pem block from a label and hex"],"unsupported_operations":["choose the label by inspecting the bytes","wrap base64 at a width other than 64","add openssl explanatory text around the block","encrypt or sign the payload"],"semantics":["Output is Figure 3: \"-----BEGIN \", the label, \"-----\", a newline, base64 wrapped at exactly 64 characters (the final line holds the remainder, and a full final line of 64 is kept), then \"-----END \", the same label, \"-----\", and a newline. No trailing blanks and no blank line are emitted.","bytes_hex is lowercase even-length hexadecimal with no prefix or whitespace. Omitted eol means LF. eol \"crlf\" uses CRLF. CR-only is accepted by the parser and is not generated.","The label is the RFC 7468 section 3 ABNF, case-sensitive, empty allowed, at most 64 bytes. The byte limit is checked before grammar, so a longer label is limit_exceeded even when it would also fail the grammar. This bound is an implementation limit; the RFC ABNF has none.","Empty bytes produce a block with no base64 line. The bytes are wrapped as opaque data and are not checked for being a key, certificate, or any ASN.1 type.","A hex string longer than 6144 characters (3072 bytes) is limit_exceeded before alphabet checks. The JSON result is capped at 8192 UTF-8 bytes.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_label_bytes":64,"max_hex_chars":6144,"max_output_bytes":8192},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["label","bytes_hex"],"properties":{"label":{"type":"string","minLength":0,"maxLength":64,"pattern":"^(?:[\\x21-\\x2C\\x2E-\\x7E](?:[ \\x2D]?[\\x21-\\x2C\\x2E-\\x7E])*)?$"},"bytes_hex":{"type":"string","minLength":0,"maxLength":6144,"pattern":"^(?:[0-9a-f]{2})*$"},"eol":{"type":"string","enum":["lf","crlf"]}}},"output_schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":8192}}},"examples":[{"input":{"label":"EXAMPLE","bytes_hex":"00"},"output":{"text":"-----BEGIN EXAMPLE-----\nAA==\n-----END EXAMPLE-----\n"}},{"input":{"label":"EXAMPLE","bytes_hex":"","eol":"crlf"},"output":{"text":"-----BEGIN EXAMPLE-----\r\n-----END EXAMPLE-----\r\n"}},{"input":{"label":"X509 CRL","bytes_hex":"ff"},"output":{"text":"-----BEGIN X509 CRL-----\n/w==\n-----END X509 CRL-----\n"}}],"execute_url":"/v1/tools/pem-envelope-format/versions/1.0.0/execute"}