diff options
| author | Charles.Forsyth <devnull@localhost> | 2009-03-30 08:58:09 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2009-03-30 08:58:09 +0000 |
| commit | 9e85ae9b75acdbe245243784d8d5b1b4de1b24f9 (patch) | |
| tree | 5dfaf8c8881bbf352dab7338cc9fba000c24eb03 /appl/cmd/ssh/cipherdes.b | |
| parent | 77bf0d6355c02a5d5199dd37033066727cad375b (diff) | |
x20090330-0957
Diffstat (limited to 'appl/cmd/ssh/cipherdes.b')
| -rw-r--r-- | appl/cmd/ssh/cipherdes.b | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/appl/cmd/ssh/cipherdes.b b/appl/cmd/ssh/cipherdes.b new file mode 100644 index 00000000..17456848 --- /dev/null +++ b/appl/cmd/ssh/cipherdes.b @@ -0,0 +1,38 @@ +implement Cipher; + +include "sys.m"; + +include "keyring.m"; + kr: Keyring; + DESstate: import kr; + +include "sshio.m"; + +Cipherstate: adt +{ + enc: ref DESstate; + dec: ref DESstate; +}; + +cs: ref Cipherstate; + +id(): int +{ + return SSH_CIPHER_DES; +} + +init(key: array of byte, nil: int) +{ + kr = load Keyring Keyring->PATH; + cs = ref Cipherstate(kr->dessetup(key, nil), kr->dessetup(key, nil)); +} + +encrypt(buf: array of byte, nbuf: int) +{ + kr->descbc(cs.enc, buf, nbuf, Keyring->Encrypt); +} + +decrypt(buf: array of byte, nbuf: int) +{ + kr->descbc(cs.dec, buf, nbuf, Keyring->Decrypt); +} |
