UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

22 lines (21 loc) 792 B
import { ASN1SpecialRealValue } from "../values.mjs"; import convertTextToBytes from "./convertTextToBytes.mjs"; export default function encodeX690Base10RealNumber(value) { if (value === 0.0) { return new Uint8Array(0); } else if (Number.isNaN(value)) { return new Uint8Array([ASN1SpecialRealValue.notANumber]); } else if (value === -0.0) { return new Uint8Array([ASN1SpecialRealValue.minusZero]); } else if (value === Infinity) { return new Uint8Array([ASN1SpecialRealValue.plusInfinity]); } else if (value === -Infinity) { return new Uint8Array([ASN1SpecialRealValue.minusInfinity]); } const valueString = (String.fromCharCode(0b00000011) + value.toFixed(7)); return convertTextToBytes(valueString); }