Skip to content

Commit 0f178a1

Browse files
committed
another fix for the serial number generator
1 parent 1d263f8 commit 0f178a1

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

lib/signing_request.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,14 @@ let sign signing_request
197197
| None ->
198198
(* we generate a positive integer, asn1-encoded: so if the high bit is
199199
set, we prepend a 0 byte *)
200+
(* if it starts with 0x00 followed by 0xNN with NN <= 0x7f, we prepend
201+
0x7f to make the integer valid *)
200202
let s = Mirage_crypto_rng.generate 10 in
201-
if String.get_uint8 s 0 = 0x7f then
203+
let start = String.get_uint8 s 0 in
204+
if start > 0x7f then
202205
"\x00" ^ s
206+
else if start = 0x00 && String.get_uint8 s 1 <= 0x7f then
207+
"\x7f" ^ s
203208
else
204209
s
205210
in

0 commit comments

Comments
 (0)