github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/sigid/data/mktest.iced (about)

     1  {Gets} = require('iced-utils')
     2  {make_esc} = require 'iced-error'
     3  
     4  hash_to_uint32 = (h) -> "0x" + h[0...8]
     5  hash_to_3bytes = (h) -> ( "0x#{h[i...(i+2)]}" for i in [0...6] by 2)
     6  hash_to_uint16 = (h) -> "0x" + h[0...4]
     7  
     8  # "abcdef1234" => ["abcd", "abcdef", "abcdef12" ]
     9  prefix_split = (h) -> (h[0...i] for i in [4..8] by 2)
    10  
    11  class Runner
    12  
    13    constructor : () ->
    14      map = []
    15  
    16    read : ({input}, cb) ->
    17      esc = make_esc cb, "read"
    18      gets = (new Gets input).run()
    19      sig_ids = []
    20      loop
    21        await gets.gets esc defer line
    22        break unless line?
    23        [which, hash] = line.split /\s+/
    24        sig_ids.push [hash, (which is 'h')]
    25      cb null, sig_ids
    26  
    27    output : ({sig_ids}) ->
    28      out = []
    29      out.push "package sigid"
    30      out.push ''
    31      @output_test_vectors { out, sig_ids }
    32      out.join "\n"
    33  
    34    output_test_vectors : ({out, sig_ids}) ->
    35      out.push "var testVectors = []struct{"
    36      out.push "\tsigID string"
    37      out.push "\tisModern bool"
    38      out.push "}{"
    39      for [sig_id, isModern] in sig_ids
    40        out.push """\t{"#{sig_id}",#{isModern}},"""
    41      out.push "}"
    42  
    43    run : ({input}, cb) ->
    44      esc = make_esc cb, "run"
    45      await @read { input }, esc defer sig_ids
    46      out = @output { sig_ids }
    47      console.log out
    48      cb null
    49  
    50  r = new Runner
    51  await r.run { input : process.stdin }, defer err
    52  rc = 0
    53  if err?
    54    console.err err.toString()
    55    rc = -2
    56  process.exit rc