diff options
Diffstat (limited to 'cipher.sts')
-rw-r--r-- | cipher.sts | 24 |
1 files changed, 8 insertions, 16 deletions
@@ -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 |