asciilifeform: ( iirc symmetric keys are supplied, per protocol, by client, so not an issue there )☟︎
asciilifeform: you will want a way to make use of 2+ fg (iirc you already have 2 on ea. machine)
asciilifeform: will note, tho, re fg timeouts -- the most likely waiting-on-fg scenario is starvation, rather than outright hangage , thing shits out 7kB/s per spec, 8 on a good day; i expect it will be the limiting reactant re how many rsa msgs / sec can be produced
asciilifeform: but i'ma stop picking on diana_coman's item for nao
asciilifeform: ( c 'unions' are sad cuz c dun give you any portable knob for cementing where the bits actually go; ada's records are sane, you can specify the exact location of erry element, paddings, endianisms, bit orders )
asciilifeform: but pointing out for the l0gz, that there's a 'ecologically clean' variant for those.
asciilifeform: ( not necessarily worth sweating over given as you already wrote it , but for next time )
asciilifeform: diana_coman: re: ToOctets / ToBitstream / etc -- do you know that ada has 'variant records' (similar to ye olde C 'unions' , but with typechecking ) , you could in principle use'em and avoid the conversions, for slightly cleaner proggy
asciilifeform: ( keep in mind that it will give you all the ones that your ~particular~ gnat supports; but nao that we have the makings of a cemented gnat, this is less of a concern )
asciilifeform: but i dun recall from my head; it is in the logs somewhere
asciilifeform: diana_coman: there's a gnat flag that actually gives you all permissible constraints, whether you knew about them or not, that can be then thrown straight into restrict.adc
asciilifeform: that way it is possible to write a piece under 1 set of constraints, and then permit it to run in a larger proggy with looser ones
asciilifeform: it is one of the reasons why i section my routines into staticlinkable libs , rather than 'take this and cut&paste'
asciilifeform: there is no particular reason why ~erry~ proggy has to have the same pragma fascism as ffa ( and in fact i've written several that cannot function under that set of constraints, e.g. the mmap thing requires System.Address )
asciilifeform: implicit conditionals aint evil per se , tho ; i banned them in ffa specifically as they get in the way of constanttimeism, is all☟︎
asciilifeform: ( the only other operation i know to do this, is array concatenation ; hence my earlier suspicion )
asciilifeform: 'No Implicit Conditionals' bans this, with the result of banning such forms
asciilifeform: ada treats any statement that divides by anything other than an immediate constant ( incl. / or mod by a named constant ) as potentially div0-barfing
asciilifeform: can define as an inlined op, for clarity, also.
asciilifeform: and you dun have to hardcoad it; simply replace Output(X, Y) := Rotate_Left(Input(X,Y), ( (T+1)*(T+2)/2) mod Z_Length); with Output(X, Y) := Rotate_Left(Input(X,Y), ( (T+1)*(T+2)/2) and (2**Keccak_L - 1));
asciilifeform: 'The "No Implicit Conditionals" restriction for the whole smg comms had to be discarded because of the Keccak...' << this is odd; is there an array concatenation in keccak ?
asciilifeform: ( it goes straight to the /tmp files horrors )
asciilifeform: diana_coman: the caveat re my method, is that i do not presently know how to ~portably~ 'lock' the thing ( so >1 process dun eat from it )
asciilifeform: 'The new Ada code simply reads from a Fuckgoats that it expects to be available at a pre-set path, *already initialised*1 and ready to read from' << ha, nice
asciilifeform: if somehow FG were to catch on with the http://btcbase.org/log/2018-10-26#1866428 crowd, the situation will not differ so much from the current : coupla 100 people will have the genuine article, and 9,999,999 sad folx will have physically-similar item made in hong kong to washington's specs. and i couldn't do a thing about it.☝︎
asciilifeform: wot + hand-delivery cuts, in a way, this knot. but not practical for konsoomer/heathen iron, sadly.
asciilifeform: currently i'm not even certain that makes sense to ~sell~ a crypto iron; possibly a truly-serious user ~must~ make 'his own' , out of standardized, exhaustively-testable, and -- most importantly -- mix&match-able, components, from a design he has read & understood.
asciilifeform: it's an open problem, and will prolly forever remain, in some sense, open; but afaik the gold standard is still a powered, disturbance-sensitive storage on-die.
asciilifeform: some variant of the 'nail polish' trick, would help, but not cure, this headache.
asciilifeform: for instance, i have here 2 FG units i flew ~back~ from pizarro, they had been pawed by randos when ben_vulpes had his customs debacle. in so far as i can tell , they have orig firmware still, and by erry possible test they are virginal, but even i cannot say whether they're 'still FG' or not !
asciilifeform: wot/chain-of-custody is the only known pill, and it still comes pretty shaky guarantees.
asciilifeform: the problem faced by even fella with a first-class head, when buying 'crypto iron', is a 9000x hypertrophied instance of the http://btcbase.org/log/2018-10-30#1867790 boojum -- to know what he's getting, he is stuck with much ~harder~ problem than even original maker had in making the artifact to begin with !☝︎☟︎
asciilifeform: so i have nfi how one'd make it a +ev biznis-proposition.
asciilifeform: naturally this aint exactly commercially-hotstuff, it suffers from same problem as my other items, e.g. FG, namely that there's maybe 100 thinking people alive total, i.e. folx who could reliably distinguish the real thing from 9000x-cheaper imitation liquishit.
asciilifeform: ( even answering the q of just where inside the brick the thing is, without heat stress or saw, will be painful )
asciilifeform: ( for bonus, sync the units after you've already cast'em into bricks of lead )
asciilifeform: cutting into the ic package, probing, etc. will change the capacitance and throw the lines out of phase.
asciilifeform: i suspect it's the closest thing physically possible to saw-proof sram 'safe'.
asciilifeform: ( and no, you can't buy remanence-free sram, afaik, off-the-shelf, i devised it and it is published only in the l0gz.)
asciilifeform: but you dun get the charge accumulation that makes for successful 'freeze with ln2 and read' .
asciilifeform: thing is powered at all times, so it knows what the relation b/w the primary clock and the phases is.
asciilifeform: Mocky: if you're speaking of the 'remanence-free sram' -- think of it as a 1950s-style delay line store, with 1 (on-die) delay line per bit ( and not even necessarily, each can store multiple bits )
asciilifeform: hypothetically, it'd be safe to transport, or even mail; it is impractical to capture,saw open,dump contents,bake a substitute with the copied pad,and deliver to unsuspecting counterparty, inside the space of day or two. esp. if you make the pad live in http://btcbase.org/log/2017-05-16#1656777 sram, rather than flash .☝︎
asciilifeform: i.e., ic that when paired with another of its kind, and rng, saves internally the pad; but won't simply disgorge it unless in a synchronous link with the item it was synced with, as described in the algo.
asciilifeform: meanwhile , in the world of the c-machine, https://archive.is/e5xD9 >> 'curl contains a heap out of buffer read vulnerability... stderr... formats the output to wrap at 80 columns. The wrap logic is however flawed, so if a single word in the message is itself longer than 80 bytes the buffer arithmetic calculates the remainder wrong and will end up reading behind the end of the buffer' etc