1 /* $OpenBSD: base64.c,v 1.11 2004/06/29 11:35:56 msf Exp $ */ 2 /* $OpenBSD: base64.c,v 1.11 2004/06/29 11:35:56 msf Exp $ */ 3 /* 4 * The author of this code is Angelos D. Keromytis (angelos@dsl.cis.upenn.edu) 5 * 6 * This code was written by Angelos D. Keromytis in Philadelphia, PA, USA, 7 * in April-May 1998 8 * 9 * Copyright (C) 1998, 1999 by Angelos D. Keromytis. 10 * 11 * Permission to use, copy, and modify this software with or without fee 12 * is hereby granted, provided that this entire notice is included in 13 * all copies of any software which is or includes a copy or 14 * modification of this software. 15 * 16 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR 17 * IMPLIED WARRANTY. IN PARTICULAR, THE AUTHORS MAKES NO 18 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE 19 * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR 20 * PURPOSE. 21 */ 22 23 #include <sys/types.h> 24 25 #include <ctype.h> 26 #include <regex.h> 27 #include <stdio.h> 28 #include <stdlib.h> 29 #include <string.h> 30 31 #include "keynote.h" 32 33 int __b64_ntop(unsigned char const *, size_t, char *, size_t); 34 int __b64_pton(char const *, unsigned char *, size_t); 35 36 int 37 kn_encode_base64(src, srclength, target, targsize) 38 unsigned char const *src; 39 unsigned int srclength; 40 char *target; 41 unsigned int targsize; 42 { 43 int i; 44 45 i = __b64_ntop(src, srclength, target, targsize); 46 if (i == -1) 47 keynote_errno = ERROR_SYNTAX; 48 return i; 49 } 50 51 int 52 kn_decode_base64(src, target, targsize) 53 char const *src; 54 unsigned char *target; 55 unsigned int targsize; 56 { 57 int i; 58 59 i = __b64_pton(src, target, targsize); 60 if (i == -1) 61 keynote_errno = ERROR_SYNTAX; 62 return i; 63 } 64