#!/usr/bin/env awk -f function prepmsg(s) { s = tolower(s) gsub(/[^a-z]/, "", s) return s } function group5(s, l, i) { l = length(s) if((l % 5) > 0) { for(i=l%5;i<5;i++) s = s CHR[ORD_A + int(rand()*26)] } gsub(/.{5}/, "& ", s) return s } function dracondi_key(kp, l, l2, i, r, c, s) { kp = prepmsg(kp) l = length(kp) r = "" for(i=0;i 0 && length(r) < 26) c = CHR[ORD_A + ((25 + ORD[c] - ORD_A) % 26)] r = r c } r = r "abcdefghijklmnopqrstuvwxyz" l2 = length(r) s = "" for(i=0;i 0) print dracondi_enc(msg, ka1, ka2) else break } else if(mode == "d") { while(getline msg) if(length(msg) > 0) print dracondi_dec(msg, ka1, ka2) else break } else print "Invalid mode" }