]> granicus.if.org Git - postgresql/commitdiff
Remove encode.*. Not needed anymore.
authorBruce Momjian <bruce@momjian.us>
Tue, 21 Aug 2001 01:38:31 +0000 (01:38 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 21 Aug 2001 01:38:31 +0000 (01:38 +0000)
contrib/pgcrypto/encode.c [deleted file]
contrib/pgcrypto/encode.h [deleted file]

diff --git a/contrib/pgcrypto/encode.c b/contrib/pgcrypto/encode.c
deleted file mode 100644 (file)
index dcd3ede..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * encode.c
- *             Various data encoding/decoding things.
- *
- * Copyright (c) 2001 Marko Kreen
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.     IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $Id: encode.c,v 1.6 2001/05/15 04:45:15 momjian Exp $
- */
-
-#include "postgres.h"
-
-#include "fmgr.h"
-
-#include "encode.h"
-
-/*
- * NAMEDATALEN is used for hash names
- */
-#if NAMEDATALEN < 16
-#error "NAMEDATALEN < 16: too small"
-#endif
-
-static pg_coding *
-                       find_coding(pg_coding * hbuf, text *name, int silent);
-static pg_coding *
-                       pg_find_coding(pg_coding * res, char *name);
-
-
-/* SQL function: encode(bytea, text) returns text */
-PG_FUNCTION_INFO_V1(encode);
-
-Datum
-encode(PG_FUNCTION_ARGS)
-{
-       text       *arg;
-       text       *name;
-       uint            len,
-                               rlen,
-                               rlen0;
-       pg_coding  *c,
-                               cbuf;
-       text       *res;
-
-       if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
-               PG_RETURN_NULL();
-
-       name = PG_GETARG_TEXT_P(1);
-       c = find_coding(&cbuf, name, 0);        /* will give error if fails */
-
-       arg = PG_GETARG_TEXT_P(0);
-       len = VARSIZE(arg) - VARHDRSZ;
-
-       rlen0 = c->encode_len(len);
-
-       res = (text *) palloc(rlen0 + VARHDRSZ);
-
-       rlen = c->encode(VARDATA(arg), len, VARDATA(res));
-       VARATT_SIZEP(res) = rlen + VARHDRSZ;
-
-       if (rlen > rlen0)
-               elog(FATAL, "pg_encode: overflow, encode estimate too small");
-
-       PG_FREE_IF_COPY(arg, 0);
-       PG_FREE_IF_COPY(name, 1);
-
-       PG_RETURN_TEXT_P(res);
-}
-
-/* SQL function: decode(text, text) returns bytea */
-PG_FUNCTION_INFO_V1(decode);
-
-Datum
-decode(PG_FUNCTION_ARGS)
-{
-       text       *arg;
-       text       *name;
-       uint            len,
-                               rlen,
-                               rlen0;
-       pg_coding  *c,
-                               cbuf;
-       text       *res;
-
-       if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
-               PG_RETURN_NULL();
-
-       name = PG_GETARG_TEXT_P(1);
-       c = find_coding(&cbuf, name, 0);        /* will give error if fails */
-
-       arg = PG_GETARG_TEXT_P(0);
-       len = VARSIZE(arg) - VARHDRSZ;
-
-       rlen0 = c->decode_len(len);
-
-       res = (text *) palloc(rlen0 + VARHDRSZ);
-
-       rlen = c->decode(VARDATA(arg), len, VARDATA(res));
-       VARATT_SIZEP(res) = rlen + VARHDRSZ;
-
-       if (rlen > rlen0)
-               elog(FATAL, "pg_decode: overflow, decode estimate too small");
-
-       PG_FREE_IF_COPY(arg, 0);
-       PG_FREE_IF_COPY(name, 1);
-
-       PG_RETURN_TEXT_P(res);
-}
-
-static pg_coding *
-find_coding(pg_coding * dst, text *name, int silent)
-{
-       pg_coding  *p;
-       char            buf[NAMEDATALEN];
-       uint            len;
-
-       len = VARSIZE(name) - VARHDRSZ;
-       if (len >= NAMEDATALEN)
-       {
-               if (silent)
-                       return NULL;
-               elog(ERROR, "Encoding type does not exist (name too long)");
-       }
-
-       memcpy(buf, VARDATA(name), len);
-       buf[len] = 0;
-
-       p = pg_find_coding(dst, buf);
-
-       if (p == NULL && !silent)
-               elog(ERROR, "Encoding type does not exist: '%s'", buf);
-       return p;
-}
-
-static char *hextbl = "0123456789abcdef";
-
-uint
-hex_encode(uint8 *src, uint len, uint8 *dst)
-{
-       uint8      *end = src + len;
-
-       while (src < end)
-       {
-               *dst++ = hextbl[(*src >> 4) & 0xF];
-               *dst++ = hextbl[*src & 0xF];
-               src++;
-       }
-       return len * 2;
-}
-
-/* probably should use lookup table */
-static uint8
-get_hex(char c)
-{
-       uint8           res = 0;
-
-       if (c >= '0' && c <= '9')
-               res = c - '0';
-       else if (c >= 'a' && c <= 'f')
-               res = c - 'a' + 10;
-       else if (c >= 'A' && c <= 'F')
-               res = c - 'A' + 10;
-       else
-               elog(ERROR, "Bad hex code: '%c'", c);
-
-       return res;
-}
-
-uint
-hex_decode(uint8 *src, uint len, uint8 *dst)
-{
-       uint8      *s,
-                          *srcend,
-                               v1,
-                               v2,
-                          *p = dst;
-
-       srcend = src + len;
-       s = src;
-       p = dst;
-       while (s < srcend)
-       {
-               if (*s == ' ' || *s == '\n' || *s == '\t' || *s == '\r')
-               {
-                       s++;
-                       continue;
-               }
-               v1 = get_hex(*s++) << 4;
-               if (s >= srcend)
-                       elog(ERROR, "hex_decode: invalid data");
-               v2 = get_hex(*s++);
-               *p++ = v1 | v2;
-       }
-
-       return p - dst;
-}
-
-
-static unsigned char _base64[] =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-uint
-b64_encode(uint8 *src, uint len, uint8 *dst)
-{
-       uint8      *s,
-                          *p,
-                          *end = src + len,
-                          *lend = dst + 76;
-       int                     pos = 2;
-       unsigned long buf = 0;
-
-       s = src;
-       p = dst;
-
-       while (s < end)
-       {
-               buf |= *s << (pos << 3);
-               pos--;
-               s++;
-
-               /* write it out */
-               if (pos < 0)
-               {
-                       *p++ = _base64[(buf >> 18) & 0x3f];
-                       *p++ = _base64[(buf >> 12) & 0x3f];
-                       *p++ = _base64[(buf >> 6) & 0x3f];
-                       *p++ = _base64[buf & 0x3f];
-
-                       pos = 2;
-                       buf = 0;
-               }
-               if (p >= lend)
-               {
-                       *p++ = '\n';
-                       lend = p + 76;
-               }
-       }
-       if (pos != 2)
-       {
-               *p++ = _base64[(buf >> 18) & 0x3f];
-               *p++ = _base64[(buf >> 12) & 0x3f];
-               *p++ = (pos == 0) ? _base64[(buf >> 6) & 0x3f] : '=';
-               *p++ = '=';
-       }
-
-       return p - dst;
-}
-
-/* probably should use lookup table */
-uint
-b64_decode(uint8 *src, uint len, uint8 *dst)
-{
-       char       *srcend = src + len,
-                          *s = src;
-       uint8      *p = dst;
-       char            c;
-       uint            b = 0;
-       unsigned long buf = 0;
-       int                     pos = 0,
-                               end = 0;
-
-       while (s < srcend)
-       {
-               c = *s++;
-               if (c >= 'A' && c <= 'Z')
-                       b = c - 'A';
-               else if (c >= 'a' && c <= 'z')
-                       b = c - 'a' + 26;
-               else if (c >= '0' && c <= '9')
-                       b = c - '0' + 52;
-               else if (c == '+')
-                       b = 62;
-               else if (c == '/')
-                       b = 63;
-               else if (c == '=')
-               {
-                       /* end sequence */
-                       if (!end)
-                       {
-                               if (pos == 2)
-                                       end = 1;
-                               else if (pos == 3)
-                                       end = 2;
-                               else
-                                       elog(ERROR, "base64: unexpected '='");
-                       }
-                       b = 0;
-               }
-               else if (c == ' ' || c == '\t' || c == '\n' || c == '\r')
-                       continue;
-               else
-                       elog(ERROR, "base64: Invalid symbol");
-
-               /* add it to buffer */
-               buf = (buf << 6) + b;
-               pos++;
-               if (pos == 4)
-               {
-                       *p++ = (buf >> 16) & 255;
-                       if (end == 0 || end > 1)
-                               *p++ = (buf >> 8) & 255;
-                       if (end == 0 || end > 2)
-                               *p++ = buf & 255;
-                       buf = 0;
-                       pos = 0;
-               }
-       }
-
-       if (pos != 0)
-               elog(ERROR, "base64: invalid end sequence");
-
-       return p - dst;
-}
-
-
-uint
-hex_enc_len(uint srclen)
-{
-       return srclen << 1;
-}
-
-uint
-hex_dec_len(uint srclen)
-{
-       return srclen >> 1;
-}
-
-uint
-b64_enc_len(uint srclen)
-{
-       /* 3 bytes will be converted to 4, linefeed after 76 chars */
-       return (srclen + 2) * 4 / 3 + srclen / (76 * 3 / 4);
-}
-
-uint
-b64_dec_len(uint srclen)
-{
-       return (srclen * 3) >> 2;
-}
-
-static pg_coding
-                       encoding_list[] = {
-       {"hex", hex_enc_len, hex_dec_len, hex_encode, hex_decode},
-       {"base64", b64_enc_len, b64_dec_len, b64_encode, b64_decode},
-       {NULL, NULL, NULL, NULL, NULL}
-};
-
-
-static pg_coding *
-pg_find_coding(pg_coding * res, char *name)
-{
-       pg_coding  *p;
-
-       for (p = encoding_list; p->name; p++)
-       {
-               if (!strcasecmp(p->name, name))
-                       return p;
-       }
-       return NULL;
-}
diff --git a/contrib/pgcrypto/encode.h b/contrib/pgcrypto/encode.h
deleted file mode 100644 (file)
index 451e06d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * pg_encode.h
- *             encode.c
- *
- * Copyright (c) 2001 Marko Kreen
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.     IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $Id: encode.h,v 1.2 2001/03/22 03:59:10 momjian Exp $
- */
-
-#ifndef __PG_ENCODE_H
-#define __PG_ENCODE_H
-
-/* exported functions */
-Datum          encode(PG_FUNCTION_ARGS);
-Datum          decode(PG_FUNCTION_ARGS);
-
-typedef struct _pg_coding pg_coding;
-struct _pg_coding
-{
-       char       *name;
-       uint            (*encode_len) (uint dlen);
-       uint            (*decode_len) (uint dlen);
-       uint            (*encode) (uint8 *data, uint dlen, uint8 *res);
-       uint            (*decode) (uint8 *data, uint dlen, uint8 *res);
-};
-
-/* They are for outside usage in C code, if needed */
-uint           hex_encode(uint8 *src, uint len, uint8 *dst);
-uint           hex_decode(uint8 *src, uint len, uint8 *dst);
-uint           b64_encode(uint8 *src, uint len, uint8 *dst);
-uint           b64_decode(uint8 *src, uint len, uint8 *dst);
-
-uint           hex_enc_len(uint srclen);
-uint           hex_dec_len(uint srclen);
-uint           b64_enc_len(uint srclen);
-uint           b64_dec_len(uint srclen);
-
-#endif  /* __PG_ENCODE_H */