summaryrefslogtreecommitdiff
path: root/package/ead/src/tinysrp/t_conv.c
diff options
context:
space:
mode:
Diffstat (limited to 'package/ead/src/tinysrp/t_conv.c')
-rw-r--r--package/ead/src/tinysrp/t_conv.c226
1 files changed, 0 insertions, 226 deletions
diff --git a/package/ead/src/tinysrp/t_conv.c b/package/ead/src/tinysrp/t_conv.c
deleted file mode 100644
index d3fe246c41..0000000000
--- a/package/ead/src/tinysrp/t_conv.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (c) 1997-1999 The Stanford SRP Authentication Project
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following conditions apply:
- *
- * 1. Any software that incorporates the SRP authentication technology
- * must display the following acknowlegment:
- * "This product uses the 'Secure Remote Password' cryptographic
- * authentication system developed by Tom Wu (tjw@CS.Stanford.EDU)."
- *
- * 2. Any software that incorporates all or part of the SRP distribution
- * itself must also display the following acknowledgment:
- * "This product includes software developed by Tom Wu and Eugene
- * Jhong for the SRP Distribution (http://srp.stanford.edu/srp/)."
- *
- * 3. Redistributions in source or binary form must retain an intact copy
- * of this copyright notice and list of conditions.
- */
-
-/*#define _POSIX_SOURCE*/
-#include <stdio.h>
-#include "t_defines.h"
-
-static int
-hexDigitToInt(c)
- char c;
-{
- if(c >= '0' && c <= '9')
- return c - '0';
- else if(c >= 'a' && c <= 'f')
- return c - 'a' + 10;
- else if(c >= 'A' && c <= 'F')
- return c - 'A' + 10;
- else
- return 0;
-}
-
-/*
- * Convert a hex string to a string of bytes; return size of dst
- */
-_TYPE( int )
-t_fromhex(dst, src)
- register char *dst, *src;
-{
- register char *chp = dst;
- register unsigned size = strlen(src);
-
- /* FIXME: handle whitespace and non-hex digits by setting size and src
- appropriately. */
-
- if(size % 2 == 1) {
- *chp++ = hexDigitToInt(*src++);
- --size;
- }
- while(size > 0) {
- *chp++ = (hexDigitToInt(*src) << 4) | hexDigitToInt(*(src + 1));
- src += 2;
- size -= 2;
- }
- return chp - dst;
-}
-
-/*
- * Convert a string of bytes to their hex representation
- */
-_TYPE( char * )
-t_tohex(dst, src, size)
- register char *dst, *src;
- register unsigned size;
-{
- int notleading = 0;
-
- register char *chp = dst;
- if (size != 0) do {
- if(notleading || *src != '\0') {
- notleading = 1;
- sprintf(chp, "%.2x", * (unsigned char *) src);
- chp += 2;
- }
- ++src;
- } while (--size != 0);
- return dst;
-}
-
-static char b64table[] =
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./";
-
-/*
- * Convert a base64 string into raw byte array representation.
- */
-_TYPE( int )
-t_fromb64(dst, src)
- register char *dst, *src;
-{
- unsigned char *a;
- char *loc;
- int i, j;
- unsigned int size;
-
- while(*src && (*src == ' ' || *src == '\t' || *src == '\n'))
- ++src;
- size = strlen(src);
-
- a = malloc((size + 1) * sizeof(unsigned char));
- if(a == (unsigned char *) 0)
- return -1;
-
- i = 0;
- while(i < size) {
- loc = strchr(b64table, src[i]);
- if(loc == (char *) 0)
- break;
- else
- a[i] = loc - b64table;
- ++i;
- }
- size = i;
-
- i = size - 1;
- j = size;
- while(1) {
- a[j] = a[i];
- if(--i < 0)
- break;
- a[j] |= (a[i] & 3) << 6;
- --j;
- a[j] = (unsigned char) ((a[i] & 0x3c) >> 2);
- if(--i < 0)
- break;
- a[j] |= (a[i] & 0xf) << 4;
- --j;
- a[j] = (unsigned char) ((a[i] & 0x30) >> 4);
- if(--i < 0)
- break;
- a[j] |= (a[i] << 2);
-
- a[--j] = 0;
- if(--i < 0)
- break;
- }
-
- while(a[j] == 0 && j <= size)
- ++j;
-
- memcpy(dst, a + j, size - j + 1);
- free(a);
- return size - j + 1;
-}
-
-/*
- * Convert a raw byte string into a null-terminated base64 ASCII string.
- */
-_TYPE( char * )
-t_tob64(dst, src, size)
- register char *dst, *src;
- register unsigned size;
-{
- int c, pos = size % 3;
- unsigned char b0 = 0, b1 = 0, b2 = 0, notleading = 0;
- char *olddst = dst;
-
- switch(pos) {
- case 1:
- b2 = src[0];
- break;
- case 2:
- b1 = src[0];
- b2 = src[1];
- break;
- }
-
- while(1) {
- c = (b0 & 0xfc) >> 2;
- if(notleading || c != 0) {
- *dst++ = b64table[c];
- notleading = 1;
- }
- c = ((b0 & 3) << 4) | ((b1 & 0xf0) >> 4);
- if(notleading || c != 0) {
- *dst++ = b64table[c];
- notleading = 1;
- }
- c = ((b1 & 0xf) << 2) | ((b2 & 0xc0) >> 6);
- if(notleading || c != 0) {
- *dst++ = b64table[c];
- notleading = 1;
- }
- c = b2 & 0x3f;
- if(notleading || c != 0) {
- *dst++ = b64table[c];
- notleading = 1;
- }
- if(pos >= size)
- break;
- else {
- b0 = src[pos++];
- b1 = src[pos++];
- b2 = src[pos++];
- }
- }
-
- *dst++ = '\0';
- return olddst;
-}