aboutsummaryrefslogtreecommitdiff
path: root/cipher.sts
diff options
context:
space:
mode:
authorAleksey Veresov <aleksey@veresov.pro>2020-10-16 22:38:45 +0300
committerAleksey Veresov <aleksey@veresov.pro>2020-10-16 22:38:45 +0300
commita5ada20d77f6fcf7bf54e49402e55d3b1c56df5e (patch)
treeb6f9a205a4da8c00c58b5da66c74b99874f4f620 /cipher.sts
parentce9e52469d0b12b3231ccc199e1b19bb924f54cd (diff)
downloadcryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar
cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.tar.xz
cryptrobber-a5ada20d77f6fcf7bf54e49402e55d3b1c56df5e.zip
Meh.
Diffstat (limited to 'cipher.sts')
-rw-r--r--cipher.sts24
1 files changed, 8 insertions, 16 deletions
diff --git a/cipher.sts b/cipher.sts
index 72d941e..d351397 100644
--- a/cipher.sts
+++ b/cipher.sts
@@ -1,18 +1,10 @@
-; cipher is password string (pointer to start and length) and position in it
-
-defword ciphernew
- 0
-exit
-
-defword mod
- swap / drop
-exit
-
-defword cipher ; ... passwd plen ppos key
- 3 get 2 get + @ xor ; key = key ^ passwd[ppos]
- over 1 + 3 get mod 2 set ; ppos = (ppos + 1) % plen
-exit
-
-defword cipherdel
+defword cipher
+ 3 ref as byte
+ 2 get as password
+ 1 get as plen
+ 0 get as pos
+ pos @ password + @ byte @ xor byte !
+ pos @ 1 + pos !
+ pos @ plen = if 0 pos ! fi
drop drop drop
exit