base64.c

来自「非常好的dns解析软件」· C语言 代码 · 共 66 行

C
66
字号
/* * Portions Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2001  Internet Software Consortium. * Portions Copyright (C) 2001  Nominum, Inc. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC AND NOMINUM DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *//* $Id: base64.c,v 1.3.18.2 2005/04/29 00:17:11 marka Exp $ *//*! \file */#include <config.h>#include <isc/base64.h>#include <isc/buffer.h>#include <isc/region.h>#include <isc/result.h>#include <isccc/base64.h>#include <isccc/result.h>#include <isccc/util.h>isc_result_tisccc_base64_encode(isccc_region_t *source, int wordlength,		  const char *wordbreak, isccc_region_t *target){	isc_region_t sr;	isc_buffer_t tb;	isc_result_t result;	sr.base = source->rstart;	sr.length = source->rend - source->rstart;	isc_buffer_init(&tb, target->rstart, target->rend - target->rstart);	result = isc_base64_totext(&sr, wordlength, wordbreak, &tb);	if (result != ISC_R_SUCCESS)		return (result);	source->rstart = source->rend;	target->rstart = isc_buffer_used(&tb);	return (ISC_R_SUCCESS);}isc_result_tisccc_base64_decode(const char *cstr, isccc_region_t *target) {	isc_buffer_t b;	isc_result_t result;	isc_buffer_init(&b, target->rstart, target->rend - target->rstart);	result = isc_base64_decodestring(cstr, &b);	if (result != ISC_R_SUCCESS)		return (result);	target->rstart = isc_buffer_used(&b);	return (ISC_R_SUCCESS);}

⌨️ 快捷键说明

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