Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
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);
}
Ejemplo n.º 4
0
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;
}