*datalenp = hex2raw(key, *data, datalen);
if (hex2raw(key, *data, datalen)) { log_error("key_from_printable: invalid hex key"); free(*data); *datalenp = 0; return; } *datalenp = datalen;
key_from_printable(int type, int private, char *key, u_int8_t **data,    u_int32_t *datalenp){#ifdef USE_X509	u_int32_t datalen;#endif	switch (type) {	case ISAKMP_KEY_PASSPHRASE:		*datalenp = strlen(key);		*data = (u_int8_t *) strdup(key);		break;	case ISAKMP_KEY_RSA:#ifdef USE_X509		datalen = (strlen(key) + 1) / 2; /* Round up, just in case */		*data = malloc(datalen);		if (!*data) {			log_error("key_from_printable: malloc (%d) failed",			    datalen);			*datalenp = 0;			return;		}		*datalenp = hex2raw(key, *data, datalen);		break;#endif	default:		log_error("key_from_printable: "		    "unknown/unsupported key type %d", type);		*data = NULL;		*datalenp = 0;		break;	}}