asn1-ts
Version:
ASN.1 encoding and decoding, including BER, CER, and DER.
22 lines (21 loc) • 792 B
JavaScript
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);
}