int main(int argc, char *argv[]) { const char *ifname = "ath0"; struct ieee80211req_key setkey; struct ieee80211req_del_key delkey; int c, keyix; int op = IEEE80211_IOCTL_SETKEY; progname = argv[0]; while ((c = getopt(argc, argv, "di:")) != -1) switch (c) { case 'd': op = IEEE80211_IOCTL_DELKEY; break; case 'i': ifname = optarg; break; default: usage(); /*NOTREACHED*/ } argc -= optind; argv += optind; if (argc < 1) usage(); keyix = atoi(argv[0]); if (!(1 <= keyix && keyix <= 4)) errx(-1, "%s: invalid key index %s, must be [1..4]", progname, argv[0]); switch (op) { case IEEE80211_IOCTL_DELKEY: memset(&delkey, 0, sizeof(delkey)); delkey.idk_keyix = keyix-1; return set80211priv(ifname, op, &delkey, sizeof(delkey), 1); case IEEE80211_IOCTL_SETKEY: if (argc != 3 && argc != 4) usage(); memset(&setkey, 0, sizeof(setkey)); setkey.ik_flags = IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV; setkey.ik_keyix = keyix-1; setkey.ik_type = getcipher(argv[1]); setkey.ik_keylen = getdata(argv[2], setkey.ik_keydata, sizeof(setkey.ik_keydata)); if (argc == 4) (void) getdata(argv[3], setkey.ik_macaddr, IEEE80211_ADDR_LEN); return set80211priv(ifname, op, &setkey, sizeof(setkey), 1); } return -1; }
int main() { char plain[1000]; char cipher[1000]; char buffer[1000]; int i; int len; int tablelen; /*while(1)*/ { gets(plain); gets(cipher); tablelen = strlen(plain); puts(cipher); puts(plain); while(gets(buffer) != NULL) { len = strlen(buffer); if(len == 0) { break; } else { for(i = 0; i < len; i++) { printf("%c", getcipher(buffer[i], plain, cipher, tablelen)); } printf("\n"); } } } return 0; }
FILE * smime_encrypt(FILE *ip, const char *ignored, const char *to) { NSSCMSMessage *msg; NSSCMSContentInfo *content; NSSCMSEnvelopedData *data; NSSCMSRecipientInfo *info; CERTCertificate *cert[2]; CERTCertDBHandle *handle; SECOidTag tag; FILE *hp, *pp, *yp; int keysize; char *nickname, *vn; int vs; if (nss_init() != OKAY) return NULL; handle = CERT_GetDefaultCertDB(); vn = ac_alloc(vs = strlen(to) + 30); snprintf(vn, vs, "smime-nickname-%s", to); nickname = value(vn); ac_free(vn); if ((cert[0] = CERT_FindCertByNicknameOrEmailAddr(handle, nickname ? nickname : (char *)to)) == NULL) { if (nickname) fprintf(stderr, "Cannot find certificate \"%s\".\n", nickname); else fprintf(stderr, "Cannot find certificate for <%s>.\n", to); return NULL; } cert[1] = NULL; if (getcipher(to, &tag, &keysize) != OKAY) return NULL; if ((msg = NSS_CMSMessage_Create(NULL)) == NULL) { fprintf(stderr, "Cannot create CMS message.\n"); return NULL; } if ((data = NSS_CMSEnvelopedData_Create(msg, tag, keysize)) == NULL) { fprintf(stderr, "Cannot create enveloped data.\n"); return NULL; } content = NSS_CMSMessage_GetContentInfo(msg); if (NSS_CMSContentInfo_SetContent_EnvelopedData(msg, content, data) != SECSuccess) { fprintf(stderr, "Cannot attach enveloped data.\n"); return NULL; } content = NSS_CMSEnvelopedData_GetContentInfo(data); if (NSS_CMSContentInfo_SetContent_Data(msg, content, NULL, PR_FALSE) != SECSuccess) { fprintf(stderr, "Cannot attach CMS data.\n"); return NULL; } if ((info = NSS_CMSRecipientInfo_Create(msg, cert[0])) == NULL) { fprintf(stderr, "Cannot create CMS recipient information.\n"); return NULL; } if (NSS_CMSEnvelopedData_AddRecipient(data, info) != SECSuccess) { fprintf(stderr, "Cannot add CMS recipient information.\n"); return NULL; } CERT_DestroyCertificate(cert[0]); if ((yp = encode(ip, &hp, &pp, msg, base64_cb)) == NULL) return NULL; NSS_CMSMessage_Destroy(msg); return smime_encrypt_assemble(hp, yp); }
int main(int argc, char *argv[]) { const char *ifname; struct ath_diag atd; HAL_DIAG_KEYVAL setkey; const char *cp; int s, c; u_int16_t keyix; int op = HAL_DIAG_SETKEY; int xor = 0; s = socket(AF_INET, SOCK_DGRAM, 0); if (s < 0) err(1, "socket"); ifname = getenv("ATH"); if (!ifname) ifname = ATH_DEFAULT; progname = argv[0]; while ((c = getopt(argc, argv, "di:x")) != -1) switch (c) { case 'd': op = HAL_DIAG_RESETKEY; break; case 'i': ifname = optarg; break; case 'x': xor = 1; break; default: usage(); /*NOTREACHED*/ } argc -= optind; argv += optind; if (argc < 1) usage(); keyix = (u_int16_t) atoi(argv[0]); if (keyix > 127) errx(-1, "%s: invalid key index %s, must be [0..127]", progname, argv[0]); strncpy(atd.ad_name, ifname, sizeof (atd.ad_name)); atd.ad_id = op | ATH_DIAG_IN | ATH_DIAG_DYN; atd.ad_out_data = NULL; atd.ad_out_size = 0; switch (op) { case HAL_DIAG_RESETKEY: atd.ad_in_data = (caddr_t) &keyix; atd.ad_in_size = sizeof(u_int16_t); if (ioctl(s, SIOCGATHDIAG, &atd) < 0) err(1, atd.ad_name); return 0; case HAL_DIAG_SETKEY: if (argc != 3 && argc != 4) usage(); memset(&setkey, 0, sizeof(setkey)); setkey.dk_keyix = keyix; setkey.dk_xor = xor; setkey.dk_keyval.kv_type = getcipher(argv[1]); setkey.dk_keyval.kv_len = getdata(argv[2], setkey.dk_keyval.kv_val, sizeof(setkey.dk_keyval.kv_val)); /* XXX MIC */ if (argc == 4) (void) getdata(argv[3], setkey.dk_mac, IEEE80211_ADDR_LEN); atd.ad_in_data = (caddr_t) &setkey; atd.ad_in_size = sizeof(setkey); if (ioctl(s, SIOCGATHDIAG, &atd) < 0) err(1, atd.ad_name); return 0; } return -1; }