jets: hook %ob, then %fein/%fynd

This commit is contained in:
Elliot Glaysher 2020-05-06 15:13:59 -07:00
parent 29f335d85d
commit a05360f97a
6 changed files with 55 additions and 47 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ba7f42d7ef75e84599a26fa98f491cbf080d7dcbf1eec800f1422e94a0e32f08
size 10013383
oid sha256:cdc31bb717626f95d7455349dac4f3171205667c4d08ed9fad071bd13266bab6
size 10013218

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:344c5ea8ba5a65e2958b9998fc5d22e03dd4324d6d83af3c834e082c923e5b89
size 1234701
oid sha256:0a637a7a8e2061caa09ea1cf62c2295a0b14920588d01338e9bd2f06eecf1c1f
size 1234571

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d9cee942f6f8ff7cc2b6b72a8e301f3cfdcc409bc6097579aebde76a9784cd50
size 12473831
oid sha256:d8eeac47513dba778cd83269996eb04f1519280ec5a36bf0395517451cd087d5
size 12473677

View File

@ -2137,8 +2137,7 @@
==
%year year
%yore yore
%fein fein
%fynd fynd
%ob ob
==
|%
::
@ -3815,41 +3814,46 @@
(cut 3 [a 1] b)
--
::
:: +fein: conceal structure, v3.
::
:: +fein conceals planet-sized atoms. The idea is that it should not be
:: trivial to tell which planet a star has spawned under.
::
++ fein
~/ %fein
|= pyn/@ ^- @
?: &((gte pyn 0x1.0000) (lte pyn 0xffff.ffff))
(add 0x1.0000 (feis:ob (sub pyn 0x1.0000)))
?: &((gte pyn 0x1.0000.0000) (lte pyn 0xffff.ffff.ffff.ffff))
=/ lo (dis pyn 0xffff.ffff)
=/ hi (dis pyn 0xffff.ffff.0000.0000)
%+ con hi
$(pyn lo)
pyn
::
:: +fynd: restore structure, v3.
::
:: Restores obfuscated values that have been enciphered with +fein.
::
++ fynd
~/ %fynd
|= cry/@ ^- @
?: &((gte cry 0x1.0000) (lte cry 0xffff.ffff))
(add 0x1.0000 (tail:ob (sub cry 0x1.0000)))
?: &((gte cry 0x1.0000.0000) (lte cry 0xffff.ffff.ffff.ffff))
=/ lo (dis cry 0xffff.ffff)
=/ hi (dis cry 0xffff.ffff.0000.0000)
%+ con hi
$(cry lo)
cry
::
++ ob
~% %ob ..ob
==
%fein fein
%fynd fynd
==
|%
::
:: +fein: conceal structure, v3.
::
:: +fein conceals planet-sized atoms. The idea is that it should not be
:: trivial to tell which planet a star has spawned under.
::
++ fein
~/ %fein
|= pyn/@ ^- @
?: &((gte pyn 0x1.0000) (lte pyn 0xffff.ffff))
(add 0x1.0000 (feis (sub pyn 0x1.0000)))
?: &((gte pyn 0x1.0000.0000) (lte pyn 0xffff.ffff.ffff.ffff))
=/ lo (dis pyn 0xffff.ffff)
=/ hi (dis pyn 0xffff.ffff.0000.0000)
%+ con hi
$(pyn lo)
pyn
::
:: +fynd: restore structure, v3.
::
:: Restores obfuscated values that have been enciphered with +fein.
::
++ fynd
~/ %fynd
|= cry/@ ^- @
?: &((gte cry 0x1.0000) (lte cry 0xffff.ffff))
(add 0x1.0000 (tail (sub cry 0x1.0000)))
?: &((gte cry 0x1.0000.0000) (lte cry 0xffff.ffff.ffff.ffff))
=/ lo (dis cry 0xffff.ffff)
=/ hi (dis cry 0xffff.ffff.0000.0000)
%+ con hi
$(cry lo)
cry
:: +feis: a four-round generalised Feistel cipher over the domain
:: [0, 2^32 - 2^16 - 1].
::
@ -5807,7 +5811,7 @@
++ dim (ape dip)
++ dip (bass 10 ;~(plug sed:ab (star sid:ab)))
++ dum (bass 10 (plus sid:ab))
++ fed %+ cook fynd
++ fed %+ cook fynd:ob
;~ pose
%+ bass 0x1.0000.0000.0000.0000 :: oversized
;~ plug
@ -5919,7 +5923,7 @@
==
::
$p
=+ sxz=(fein q.p.lot)
=+ sxz=(fein:ob q.p.lot)
=+ dyx=(met 3 sxz)
:- '~'
?: (lte dyx 1)

View File

@ -186,7 +186,8 @@ u3_noun
_print_p(u3_atom cor, u3_atom p)
{
// Scramble the raw number to the concealed version.
u3_noun hok = u3j_cook("u3we_scow_fein_p", u3k(cor), "fein");
u3_noun ob = u3j_cook("u3we_scow_ob_p", u3k(cor), "ob");
u3_noun hok = u3j_cook("u3we_scow_fein_p", ob, "fein");
u3_atom sxz = u3n_slam_on(hok, u3k(p));
// Simple galaxy case

View File

@ -161,7 +161,8 @@ _parse_p(u3_noun cor, u3_noun txt) {
u3_atom raw = u3k(u3t(m));
u3z(m);
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", u3k(cor), "fynd");
u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob");
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd");
return u3nc(0, u3n_slam_on(hok, u3k(raw)));
}
@ -193,7 +194,8 @@ _parse_p(u3_noun cor, u3_noun txt) {
u3_atom raw = u3k(u3t(m));
u3z(m);
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", u3k(cor), "fynd");
u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob");
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd");
return u3nc(0, u3n_slam_on(hok, u3k(raw)));
}
@ -228,7 +230,8 @@ _parse_p(u3_noun cor, u3_noun txt) {
u3_atom raw = u3k(u3t(m));
u3z(m);
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", u3k(cor), "fynd");
u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob");
u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd");
return u3nc(0, u3n_slam_on(hok, u3k(raw)));
}