⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check-48.c

📁 RSA加密/解密算法源码 asn1c-0.9.12
💻 C
字号:
#undef	NDEBUG#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <string.h>#include <assert.h>#include <errno.h>#include <UserIdentifier.h>static unsigned char buf[4096];static int buf_offset;static int_buf_writer(const void *buffer, size_t size, void *app_key) {	unsigned char *b, *bend;	(void)app_key;	assert(buf_offset + size < sizeof(buf));	memcpy(buf + buf_offset, buffer, size);	b = buf + buf_offset;	bend = b + size;	printf("=> [");	for(; b < bend; b++)		printf(" %02X", *b);	printf("]:%ld\n", (long)size);	buf_offset += size;	return 0;}static intsave_object(void *bs, asn_TYPE_descriptor_t *td) {	asn_enc_rval_t rval; /* Return value */	int i;		rval = der_encode(td, bs, _buf_writer, 0);	if (rval.encoded == -1) {		fprintf(stderr,			"Cannot encode %s: %s\n",			rval.failed_type->name, strerror(errno));		assert(rval.encoded != -1);		return -1;	/* JIC */	}	buf[buf_offset++] = 123;	/* Finalize with garbage */	asn_fprint(stderr, td, bs);	xer_fprint(stderr, td, bs);	printf("OUT: [");	for(i = 0; i < buf_offset; i++)		printf(" %02x", buf[i]);	printf("]\n");	return 0;}static intload_object(void *bs, asn_TYPE_descriptor_t *td) {	asn_dec_rval_t rval;	fprintf(stderr, "\nLOADING OBJECT OF SIZE %d\n", buf_offset);	rval = ber_decode(0, td, (void **)&bs, buf, buf_offset);	assert(rval.code == RC_OK);	asn_fprint(stderr, td, bs);	xer_fprint(stderr, td, bs);	return (rval.code == RC_OK)?0:-1;}intmain() {	asn_TYPE_descriptor_t *td = &asn_DEF_UserIdentifier;	UserIdentifier_t user;	UserIdentifier_t user_new;	int ret;	memset(&user, 0, sizeof user);	memset(&user_new, 0, sizeof user_new);	user.present = UserIdentifier_PR_phoneNumber;	OCTET_STRING_fromBuf(		&user.choice.phoneNumber,		"0123456789", -1);	/* Save->Load must succeed */	save_object(&user, td);	ret = load_object(&user_new, td);	assert(user_new.present == UserIdentifier_PR_phoneNumber);	assert(ret == 0);	printf("OK\n");	return ret;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -