You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2016/05/16 06:40:33 UTC

[02/11] incubator-hawq git commit: HAWQ-394. Remove pgcrypto from code base

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sha2.c
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sha2.c b/contrib/pgcrypto/sha2.c
deleted file mode 100644
index 9cd58a0..0000000
--- a/contrib/pgcrypto/sha2.c
+++ /dev/null
@@ -1,991 +0,0 @@
-/*	$OpenBSD: sha2.c,v 1.6 2004/05/03 02:57:36 millert Exp $	*/
-
-/*
- * FILE:	sha2.c
- * AUTHOR:	Aaron D. Gifford <me...@aarongifford.com>
- *
- * Copyright (c) 2000-2001, Aaron D. Gifford
- * 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.
- * 3. Neither the name of the copyright holder nor the names of contributors
- *	  may be used to endorse or promote products derived from this software
- *	  without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``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 CONTRIBUTOR(S) 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.
- *
- * $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
- *
- * $PostgreSQL: pgsql/contrib/pgcrypto/sha2.c,v 1.11 2009/06/11 14:48:52 momjian Exp $
- */
-
-#include "postgres.h"
-
-#include <sys/param.h>
-
-#include "sha2.h"
-
-/*
- * UNROLLED TRANSFORM LOOP NOTE:
- * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
- * loop version for the hash transform rounds (defined using macros
- * later in this file).  Either define on the command line, for example:
- *
- *	 cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
- *
- * or define below:
- *
- *	 #define SHA2_UNROLL_TRANSFORM
- *
- */
-
-/*** SHA-256/384/512 Various Length Definitions ***********************/
-/* NOTE: Most of these are in sha2.h */
-#define SHA256_SHORT_BLOCK_LENGTH	(SHA256_BLOCK_LENGTH - 8)
-#define SHA384_SHORT_BLOCK_LENGTH	(SHA384_BLOCK_LENGTH - 16)
-#define SHA512_SHORT_BLOCK_LENGTH	(SHA512_BLOCK_LENGTH - 16)
-
-
-/*** ENDIAN REVERSAL MACROS *******************************************/
-#ifndef WORDS_BIGENDIAN
-#define REVERSE32(w,x)	{ \
-	uint32 tmp = (w); \
-	tmp = (tmp >> 16) | (tmp << 16); \
-	(x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \
-}
-#define REVERSE64(w,x)	{ \
-	uint64 tmp = (w); \
-	tmp = (tmp >> 32) | (tmp << 32); \
-	tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \
-		  ((tmp & 0x00ff00ff00ff00ffULL) << 8); \
-	(x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
-		  ((tmp & 0x0000ffff0000ffffULL) << 16); \
-}
-#endif   /* not bigendian */
-
-/*
- * Macro for incrementally adding the unsigned 64-bit integer n to the
- * unsigned 128-bit integer (represented using a two-element array of
- * 64-bit words):
- */
-#define ADDINC128(w,n)	{ \
-	(w)[0] += (uint64)(n); \
-	if ((w)[0] < (n)) { \
-		(w)[1]++; \
-	} \
-}
-
-/*** THE SIX LOGICAL FUNCTIONS ****************************************/
-/*
- * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
- *
- *	 NOTE:	The naming of R and S appears backwards here (R is a SHIFT and
- *	 S is a ROTATION) because the SHA-256/384/512 description document
- *	 (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
- *	 same "backwards" definition.
- */
-/* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
-#define R(b,x)		((x) >> (b))
-/* 32-bit Rotate-right (used in SHA-256): */
-#define S32(b,x)	(((x) >> (b)) | ((x) << (32 - (b))))
-/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
-#define S64(b,x)	(((x) >> (b)) | ((x) << (64 - (b))))
-
-/* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */
-#define Ch(x,y,z)	(((x) & (y)) ^ ((~(x)) & (z)))
-#define Maj(x,y,z)	(((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
-
-/* Four of six logical functions used in SHA-256: */
-#define Sigma0_256(x)	(S32(2,  (x)) ^ S32(13, (x)) ^ S32(22, (x)))
-#define Sigma1_256(x)	(S32(6,  (x)) ^ S32(11, (x)) ^ S32(25, (x)))
-#define sigma0_256(x)	(S32(7,  (x)) ^ S32(18, (x)) ^ R(3 ,   (x)))
-#define sigma1_256(x)	(S32(17, (x)) ^ S32(19, (x)) ^ R(10,   (x)))
-
-/* Four of six logical functions used in SHA-384 and SHA-512: */
-#define Sigma0_512(x)	(S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))
-#define Sigma1_512(x)	(S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))
-#define sigma0_512(x)	(S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7,   (x)))
-#define sigma1_512(x)	(S64(19, (x)) ^ S64(61, (x)) ^ R( 6,   (x)))
-
-/*** INTERNAL FUNCTION PROTOTYPES *************************************/
-/* NOTE: These should not be accessed directly from outside this
- * library -- they are intended for private internal visibility/use
- * only.
- */
-static void SHA512_Last(SHA512_CTX *);
-static void SHA256_Transform(SHA256_CTX *, const uint8 *);
-static void SHA512_Transform(SHA512_CTX *, const uint8 *);
-
-
-/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
-/* Hash constant words K for SHA-256: */
-static const uint32 K256[64] = {
-	0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
-	0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
-	0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
-	0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
-	0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
-	0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
-	0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
-	0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
-	0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
-	0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
-	0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
-	0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
-	0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
-	0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
-	0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
-	0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
-};
-
-/* Initial hash value H for SHA-224: */
-static const uint32 sha224_initial_hash_value[8] = {
-	0xc1059ed8UL,
-	0x367cd507UL,
-	0x3070dd17UL,
-	0xf70e5939UL,
-	0xffc00b31UL,
-	0x68581511UL,
-	0x64f98fa7UL,
-	0xbefa4fa4UL
-};
-
-/* Initial hash value H for SHA-256: */
-static const uint32 sha256_initial_hash_value[8] = {
-	0x6a09e667UL,
-	0xbb67ae85UL,
-	0x3c6ef372UL,
-	0xa54ff53aUL,
-	0x510e527fUL,
-	0x9b05688cUL,
-	0x1f83d9abUL,
-	0x5be0cd19UL
-};
-
-/* Hash constant words K for SHA-384 and SHA-512: */
-static const uint64 K512[80] = {
-	0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
-	0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
-	0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
-	0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
-	0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
-	0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
-	0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
-	0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
-	0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
-	0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
-	0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
-	0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
-	0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
-	0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
-	0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
-	0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
-	0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
-	0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
-	0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
-	0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
-	0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
-	0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
-	0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
-	0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
-	0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
-	0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
-	0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
-	0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
-	0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
-	0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
-	0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
-	0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
-	0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
-	0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
-	0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
-	0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
-	0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
-	0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
-	0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
-	0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL
-};
-
-/* Initial hash value H for SHA-384 */
-static const uint64 sha384_initial_hash_value[8] = {
-	0xcbbb9d5dc1059ed8ULL,
-	0x629a292a367cd507ULL,
-	0x9159015a3070dd17ULL,
-	0x152fecd8f70e5939ULL,
-	0x67332667ffc00b31ULL,
-	0x8eb44a8768581511ULL,
-	0xdb0c2e0d64f98fa7ULL,
-	0x47b5481dbefa4fa4ULL
-};
-
-/* Initial hash value H for SHA-512 */
-static const uint64 sha512_initial_hash_value[8] = {
-	0x6a09e667f3bcc908ULL,
-	0xbb67ae8584caa73bULL,
-	0x3c6ef372fe94f82bULL,
-	0xa54ff53a5f1d36f1ULL,
-	0x510e527fade682d1ULL,
-	0x9b05688c2b3e6c1fULL,
-	0x1f83d9abfb41bd6bULL,
-	0x5be0cd19137e2179ULL
-};
-
-
-/*** SHA-256: *********************************************************/
-void
-SHA256_Init(SHA256_CTX *context)
-{
-	if (context == NULL)
-		return;
-	memcpy(context->state, sha256_initial_hash_value, SHA256_DIGEST_LENGTH);
-	memset(context->buffer, 0, SHA256_BLOCK_LENGTH);
-	context->bitcount = 0;
-}
-
-#ifdef SHA2_UNROLL_TRANSFORM
-
-/* Unrolled SHA-256 round macros: */
-
-#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) do {					\
-	W256[j] = (uint32)data[3] | ((uint32)data[2] << 8) |		\
-		((uint32)data[1] << 16) | ((uint32)data[0] << 24);		\
-	data += 4;								\
-	T1 = (h) + Sigma1_256((e)) + Ch((e), (f), (g)) + K256[j] + W256[j]; \
-	(d) += T1;								\
-	(h) = T1 + Sigma0_256((a)) + Maj((a), (b), (c));			\
-	j++;									\
-} while(0)
-
-#define ROUND256(a,b,c,d,e,f,g,h) do {						\
-	s0 = W256[(j+1)&0x0f];							\
-	s0 = sigma0_256(s0);							\
-	s1 = W256[(j+14)&0x0f];							\
-	s1 = sigma1_256(s1);							\
-	T1 = (h) + Sigma1_256((e)) + Ch((e), (f), (g)) + K256[j] +		\
-		 (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0);			\
-	(d) += T1;								\
-	(h) = T1 + Sigma0_256((a)) + Maj((a), (b), (c));			\
-	j++;									\
-} while(0)
-
-static void
-SHA256_Transform(SHA256_CTX *context, const uint8 *data)
-{
-	uint32		a,
-				b,
-				c,
-				d,
-				e,
-				f,
-				g,
-				h,
-				s0,
-				s1;
-	uint32		T1,
-			   *W256;
-	int			j;
-
-	W256 = (uint32 *) context->buffer;
-
-	/* Initialize registers with the prev. intermediate value */
-	a = context->state[0];
-	b = context->state[1];
-	c = context->state[2];
-	d = context->state[3];
-	e = context->state[4];
-	f = context->state[5];
-	g = context->state[6];
-	h = context->state[7];
-
-	j = 0;
-	do
-	{
-		/* Rounds 0 to 15 (unrolled): */
-		ROUND256_0_TO_15(a, b, c, d, e, f, g, h);
-		ROUND256_0_TO_15(h, a, b, c, d, e, f, g);
-		ROUND256_0_TO_15(g, h, a, b, c, d, e, f);
-		ROUND256_0_TO_15(f, g, h, a, b, c, d, e);
-		ROUND256_0_TO_15(e, f, g, h, a, b, c, d);
-		ROUND256_0_TO_15(d, e, f, g, h, a, b, c);
-		ROUND256_0_TO_15(c, d, e, f, g, h, a, b);
-		ROUND256_0_TO_15(b, c, d, e, f, g, h, a);
-	} while (j < 16);
-
-	/* Now for the remaining rounds to 64: */
-	do
-	{
-		ROUND256(a, b, c, d, e, f, g, h);
-		ROUND256(h, a, b, c, d, e, f, g);
-		ROUND256(g, h, a, b, c, d, e, f);
-		ROUND256(f, g, h, a, b, c, d, e);
-		ROUND256(e, f, g, h, a, b, c, d);
-		ROUND256(d, e, f, g, h, a, b, c);
-		ROUND256(c, d, e, f, g, h, a, b);
-		ROUND256(b, c, d, e, f, g, h, a);
-	} while (j < 64);
-
-	/* Compute the current intermediate hash value */
-	context->state[0] += a;
-	context->state[1] += b;
-	context->state[2] += c;
-	context->state[3] += d;
-	context->state[4] += e;
-	context->state[5] += f;
-	context->state[6] += g;
-	context->state[7] += h;
-
-	/* Clean up */
-	a = b = c = d = e = f = g = h = T1 = 0;
-}
-#else							/* SHA2_UNROLL_TRANSFORM */
-
-static void
-SHA256_Transform(SHA256_CTX *context, const uint8 *data)
-{
-	uint32		a,
-				b,
-				c,
-				d,
-				e,
-				f,
-				g,
-				h,
-				s0,
-				s1;
-	uint32		T1,
-				T2,
-			   *W256;
-	int			j;
-
-	W256 = (uint32 *) context->buffer;
-
-	/* Initialize registers with the prev. intermediate value */
-	a = context->state[0];
-	b = context->state[1];
-	c = context->state[2];
-	d = context->state[3];
-	e = context->state[4];
-	f = context->state[5];
-	g = context->state[6];
-	h = context->state[7];
-
-	j = 0;
-	do
-	{
-		W256[j] = (uint32) data[3] | ((uint32) data[2] << 8) |
-			((uint32) data[1] << 16) | ((uint32) data[0] << 24);
-		data += 4;
-		/* Apply the SHA-256 compression function to update a..h */
-		T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j];
-		T2 = Sigma0_256(a) + Maj(a, b, c);
-		h = g;
-		g = f;
-		f = e;
-		e = d + T1;
-		d = c;
-		c = b;
-		b = a;
-		a = T1 + T2;
-
-		j++;
-	} while (j < 16);
-
-	do
-	{
-		/* Part of the message block expansion: */
-		s0 = W256[(j + 1) & 0x0f];
-		s0 = sigma0_256(s0);
-		s1 = W256[(j + 14) & 0x0f];
-		s1 = sigma1_256(s1);
-
-		/* Apply the SHA-256 compression function to update a..h */
-		T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] +
-			(W256[j & 0x0f] += s1 + W256[(j + 9) & 0x0f] + s0);
-		T2 = Sigma0_256(a) + Maj(a, b, c);
-		h = g;
-		g = f;
-		f = e;
-		e = d + T1;
-		d = c;
-		c = b;
-		b = a;
-		a = T1 + T2;
-
-		j++;
-	} while (j < 64);
-
-	/* Compute the current intermediate hash value */
-	context->state[0] += a;
-	context->state[1] += b;
-	context->state[2] += c;
-	context->state[3] += d;
-	context->state[4] += e;
-	context->state[5] += f;
-	context->state[6] += g;
-	context->state[7] += h;
-
-	/* Clean up */
-	a = b = c = d = e = f = g = h = T1 = T2 = 0;
-}
-#endif   /* SHA2_UNROLL_TRANSFORM */
-
-void
-SHA256_Update(SHA256_CTX *context, const uint8 *data, size_t len)
-{
-	size_t		freespace,
-				usedspace;
-
-	/* Calling with no data is valid (we do nothing) */
-	if (len == 0)
-		return;
-
-	usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
-	if (usedspace > 0)
-	{
-		/* Calculate how much free space is available in the buffer */
-		freespace = SHA256_BLOCK_LENGTH - usedspace;
-
-		if (len >= freespace)
-		{
-			/* Fill the buffer completely and process it */
-			memcpy(&context->buffer[usedspace], data, freespace);
-			context->bitcount += freespace << 3;
-			len -= freespace;
-			data += freespace;
-			SHA256_Transform(context, context->buffer);
-		}
-		else
-		{
-			/* The buffer is not yet full */
-			memcpy(&context->buffer[usedspace], data, len);
-			context->bitcount += len << 3;
-			/* Clean up: */
-			usedspace = freespace = 0;
-			return;
-		}
-	}
-	while (len >= SHA256_BLOCK_LENGTH)
-	{
-		/* Process as many complete blocks as we can */
-		SHA256_Transform(context, data);
-		context->bitcount += SHA256_BLOCK_LENGTH << 3;
-		len -= SHA256_BLOCK_LENGTH;
-		data += SHA256_BLOCK_LENGTH;
-	}
-	if (len > 0)
-	{
-		/* There's left-overs, so save 'em */
-		memcpy(context->buffer, data, len);
-		context->bitcount += len << 3;
-	}
-	/* Clean up: */
-	usedspace = freespace = 0;
-}
-
-static void
-SHA256_Last(SHA256_CTX *context)
-{
-	unsigned int usedspace;
-
-	usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
-#ifndef WORDS_BIGENDIAN
-	/* Convert FROM host byte order */
-	REVERSE64(context->bitcount, context->bitcount);
-#endif
-	if (usedspace > 0)
-	{
-		/* Begin padding with a 1 bit: */
-		context->buffer[usedspace++] = 0x80;
-
-		if (usedspace <= SHA256_SHORT_BLOCK_LENGTH)
-		{
-			/* Set-up for the last transform: */
-			memset(&context->buffer[usedspace], 0, SHA256_SHORT_BLOCK_LENGTH - usedspace);
-		}
-		else
-		{
-			if (usedspace < SHA256_BLOCK_LENGTH)
-			{
-				memset(&context->buffer[usedspace], 0, SHA256_BLOCK_LENGTH - usedspace);
-			}
-			/* Do second-to-last transform: */
-			SHA256_Transform(context, context->buffer);
-
-			/* And set-up for the last transform: */
-			memset(context->buffer, 0, SHA256_SHORT_BLOCK_LENGTH);
-		}
-	}
-	else
-	{
-		/* Set-up for the last transform: */
-		memset(context->buffer, 0, SHA256_SHORT_BLOCK_LENGTH);
-
-		/* Begin padding with a 1 bit: */
-		*context->buffer = 0x80;
-	}
-	/* Set the bit count: */
-	*(uint64 *) &context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
-
-	/* Final transform: */
-	SHA256_Transform(context, context->buffer);
-}
-
-void
-SHA256_Final(uint8 digest[], SHA256_CTX *context)
-{
-	/* If no digest buffer is passed, we don't bother doing this: */
-	if (digest != NULL)
-	{
-		SHA256_Last(context);
-
-#ifndef WORDS_BIGENDIAN
-		{
-			/* Convert TO host byte order */
-			int			j;
-
-			for (j = 0; j < 8; j++)
-			{
-				REVERSE32(context->state[j], context->state[j]);
-			}
-		}
-#endif
-		memcpy(digest, context->state, SHA256_DIGEST_LENGTH);
-	}
-
-	/* Clean up state data: */
-	memset(context, 0, sizeof(*context));
-}
-
-
-/*** SHA-512: *********************************************************/
-void
-SHA512_Init(SHA512_CTX *context)
-{
-	if (context == NULL)
-		return;
-	memcpy(context->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH);
-	memset(context->buffer, 0, SHA512_BLOCK_LENGTH);
-	context->bitcount[0] = context->bitcount[1] = 0;
-}
-
-#ifdef SHA2_UNROLL_TRANSFORM
-
-/* Unrolled SHA-512 round macros: */
-
-#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) do {					\
-	W512[j] = (uint64)data[7] | ((uint64)data[6] << 8) |		\
-		((uint64)data[5] << 16) | ((uint64)data[4] << 24) |		\
-		((uint64)data[3] << 32) | ((uint64)data[2] << 40) |		\
-		((uint64)data[1] << 48) | ((uint64)data[0] << 56);		\
-	data += 8;								\
-	T1 = (h) + Sigma1_512((e)) + Ch((e), (f), (g)) + K512[j] + W512[j]; \
-	(d) += T1;								\
-	(h) = T1 + Sigma0_512((a)) + Maj((a), (b), (c));			\
-	j++;									\
-} while(0)
-
-
-#define ROUND512(a,b,c,d,e,f,g,h) do {						\
-	s0 = W512[(j+1)&0x0f];							\
-	s0 = sigma0_512(s0);							\
-	s1 = W512[(j+14)&0x0f];							\
-	s1 = sigma1_512(s1);							\
-	T1 = (h) + Sigma1_512((e)) + Ch((e), (f), (g)) + K512[j] +		\
-			 (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0);			\
-	(d) += T1;								\
-	(h) = T1 + Sigma0_512((a)) + Maj((a), (b), (c));			\
-	j++;									\
-} while(0)
-
-static void
-SHA512_Transform(SHA512_CTX *context, const uint8 *data)
-{
-	uint64		a,
-				b,
-				c,
-				d,
-				e,
-				f,
-				g,
-				h,
-				s0,
-				s1;
-	uint64		T1,
-			   *W512 = (uint64 *) context->buffer;
-	int			j;
-
-	/* Initialize registers with the prev. intermediate value */
-	a = context->state[0];
-	b = context->state[1];
-	c = context->state[2];
-	d = context->state[3];
-	e = context->state[4];
-	f = context->state[5];
-	g = context->state[6];
-	h = context->state[7];
-
-	j = 0;
-	do
-	{
-		ROUND512_0_TO_15(a, b, c, d, e, f, g, h);
-		ROUND512_0_TO_15(h, a, b, c, d, e, f, g);
-		ROUND512_0_TO_15(g, h, a, b, c, d, e, f);
-		ROUND512_0_TO_15(f, g, h, a, b, c, d, e);
-		ROUND512_0_TO_15(e, f, g, h, a, b, c, d);
-		ROUND512_0_TO_15(d, e, f, g, h, a, b, c);
-		ROUND512_0_TO_15(c, d, e, f, g, h, a, b);
-		ROUND512_0_TO_15(b, c, d, e, f, g, h, a);
-	} while (j < 16);
-
-	/* Now for the remaining rounds up to 79: */
-	do
-	{
-		ROUND512(a, b, c, d, e, f, g, h);
-		ROUND512(h, a, b, c, d, e, f, g);
-		ROUND512(g, h, a, b, c, d, e, f);
-		ROUND512(f, g, h, a, b, c, d, e);
-		ROUND512(e, f, g, h, a, b, c, d);
-		ROUND512(d, e, f, g, h, a, b, c);
-		ROUND512(c, d, e, f, g, h, a, b);
-		ROUND512(b, c, d, e, f, g, h, a);
-	} while (j < 80);
-
-	/* Compute the current intermediate hash value */
-	context->state[0] += a;
-	context->state[1] += b;
-	context->state[2] += c;
-	context->state[3] += d;
-	context->state[4] += e;
-	context->state[5] += f;
-	context->state[6] += g;
-	context->state[7] += h;
-
-	/* Clean up */
-	a = b = c = d = e = f = g = h = T1 = 0;
-}
-#else							/* SHA2_UNROLL_TRANSFORM */
-
-static void
-SHA512_Transform(SHA512_CTX *context, const uint8 *data)
-{
-	uint64		a,
-				b,
-				c,
-				d,
-				e,
-				f,
-				g,
-				h,
-				s0,
-				s1;
-	uint64		T1,
-				T2,
-			   *W512 = (uint64 *) context->buffer;
-	int			j;
-
-	/* Initialize registers with the prev. intermediate value */
-	a = context->state[0];
-	b = context->state[1];
-	c = context->state[2];
-	d = context->state[3];
-	e = context->state[4];
-	f = context->state[5];
-	g = context->state[6];
-	h = context->state[7];
-
-	j = 0;
-	do
-	{
-		W512[j] = (uint64) data[7] | ((uint64) data[6] << 8) |
-			((uint64) data[5] << 16) | ((uint64) data[4] << 24) |
-			((uint64) data[3] << 32) | ((uint64) data[2] << 40) |
-			((uint64) data[1] << 48) | ((uint64) data[0] << 56);
-		data += 8;
-		/* Apply the SHA-512 compression function to update a..h */
-		T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j];
-		T2 = Sigma0_512(a) + Maj(a, b, c);
-		h = g;
-		g = f;
-		f = e;
-		e = d + T1;
-		d = c;
-		c = b;
-		b = a;
-		a = T1 + T2;
-
-		j++;
-	} while (j < 16);
-
-	do
-	{
-		/* Part of the message block expansion: */
-		s0 = W512[(j + 1) & 0x0f];
-		s0 = sigma0_512(s0);
-		s1 = W512[(j + 14) & 0x0f];
-		s1 = sigma1_512(s1);
-
-		/* Apply the SHA-512 compression function to update a..h */
-		T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] +
-			(W512[j & 0x0f] += s1 + W512[(j + 9) & 0x0f] + s0);
-		T2 = Sigma0_512(a) + Maj(a, b, c);
-		h = g;
-		g = f;
-		f = e;
-		e = d + T1;
-		d = c;
-		c = b;
-		b = a;
-		a = T1 + T2;
-
-		j++;
-	} while (j < 80);
-
-	/* Compute the current intermediate hash value */
-	context->state[0] += a;
-	context->state[1] += b;
-	context->state[2] += c;
-	context->state[3] += d;
-	context->state[4] += e;
-	context->state[5] += f;
-	context->state[6] += g;
-	context->state[7] += h;
-
-	/* Clean up */
-	a = b = c = d = e = f = g = h = T1 = T2 = 0;
-}
-#endif   /* SHA2_UNROLL_TRANSFORM */
-
-void
-SHA512_Update(SHA512_CTX *context, const uint8 *data, size_t len)
-{
-	size_t		freespace,
-				usedspace;
-
-	/* Calling with no data is valid (we do nothing) */
-	if (len == 0)
-		return;
-
-	usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
-	if (usedspace > 0)
-	{
-		/* Calculate how much free space is available in the buffer */
-		freespace = SHA512_BLOCK_LENGTH - usedspace;
-
-		if (len >= freespace)
-		{
-			/* Fill the buffer completely and process it */
-			memcpy(&context->buffer[usedspace], data, freespace);
-			ADDINC128(context->bitcount, freespace << 3);
-			len -= freespace;
-			data += freespace;
-			SHA512_Transform(context, context->buffer);
-		}
-		else
-		{
-			/* The buffer is not yet full */
-			memcpy(&context->buffer[usedspace], data, len);
-			ADDINC128(context->bitcount, len << 3);
-			/* Clean up: */
-			usedspace = freespace = 0;
-			return;
-		}
-	}
-	while (len >= SHA512_BLOCK_LENGTH)
-	{
-		/* Process as many complete blocks as we can */
-		SHA512_Transform(context, data);
-		ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3);
-		len -= SHA512_BLOCK_LENGTH;
-		data += SHA512_BLOCK_LENGTH;
-	}
-	if (len > 0)
-	{
-		/* There's left-overs, so save 'em */
-		memcpy(context->buffer, data, len);
-		ADDINC128(context->bitcount, len << 3);
-	}
-	/* Clean up: */
-	usedspace = freespace = 0;
-}
-
-static void
-SHA512_Last(SHA512_CTX *context)
-{
-	unsigned int usedspace;
-
-	usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
-#ifndef WORDS_BIGENDIAN
-	/* Convert FROM host byte order */
-	REVERSE64(context->bitcount[0], context->bitcount[0]);
-	REVERSE64(context->bitcount[1], context->bitcount[1]);
-#endif
-	if (usedspace > 0)
-	{
-		/* Begin padding with a 1 bit: */
-		context->buffer[usedspace++] = 0x80;
-
-		if (usedspace <= SHA512_SHORT_BLOCK_LENGTH)
-		{
-			/* Set-up for the last transform: */
-			memset(&context->buffer[usedspace], 0, SHA512_SHORT_BLOCK_LENGTH - usedspace);
-		}
-		else
-		{
-			if (usedspace < SHA512_BLOCK_LENGTH)
-			{
-				memset(&context->buffer[usedspace], 0, SHA512_BLOCK_LENGTH - usedspace);
-			}
-			/* Do second-to-last transform: */
-			SHA512_Transform(context, context->buffer);
-
-			/* And set-up for the last transform: */
-			memset(context->buffer, 0, SHA512_BLOCK_LENGTH - 2);
-		}
-	}
-	else
-	{
-		/* Prepare for final transform: */
-		memset(context->buffer, 0, SHA512_SHORT_BLOCK_LENGTH);
-
-		/* Begin padding with a 1 bit: */
-		*context->buffer = 0x80;
-	}
-	/* Store the length of input data (in bits): */
-	*(uint64 *) &context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
-	*(uint64 *) &context->buffer[SHA512_SHORT_BLOCK_LENGTH + 8] = context->bitcount[0];
-
-	/* Final transform: */
-	SHA512_Transform(context, context->buffer);
-}
-
-void
-SHA512_Final(uint8 digest[], SHA512_CTX *context)
-{
-	/* If no digest buffer is passed, we don't bother doing this: */
-	if (digest != NULL)
-	{
-		SHA512_Last(context);
-
-		/* Save the hash data for output: */
-#ifndef WORDS_BIGENDIAN
-		{
-			/* Convert TO host byte order */
-			int			j;
-
-			for (j = 0; j < 8; j++)
-			{
-				REVERSE64(context->state[j], context->state[j]);
-			}
-		}
-#endif
-		memcpy(digest, context->state, SHA512_DIGEST_LENGTH);
-	}
-
-	/* Zero out state data */
-	memset(context, 0, sizeof(*context));
-}
-
-
-/*** SHA-384: *********************************************************/
-void
-SHA384_Init(SHA384_CTX *context)
-{
-	if (context == NULL)
-		return;
-	memcpy(context->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH);
-	memset(context->buffer, 0, SHA384_BLOCK_LENGTH);
-	context->bitcount[0] = context->bitcount[1] = 0;
-}
-
-void
-SHA384_Update(SHA384_CTX *context, const uint8 *data, size_t len)
-{
-	SHA512_Update((SHA512_CTX *) context, data, len);
-}
-
-void
-SHA384_Final(uint8 digest[], SHA384_CTX *context)
-{
-	/* If no digest buffer is passed, we don't bother doing this: */
-	if (digest != NULL)
-	{
-		SHA512_Last((SHA512_CTX *) context);
-
-		/* Save the hash data for output: */
-#ifndef WORDS_BIGENDIAN
-		{
-			/* Convert TO host byte order */
-			int			j;
-
-			for (j = 0; j < 6; j++)
-			{
-				REVERSE64(context->state[j], context->state[j]);
-			}
-		}
-#endif
-		memcpy(digest, context->state, SHA384_DIGEST_LENGTH);
-	}
-
-	/* Zero out state data */
-	memset(context, 0, sizeof(*context));
-}
-
-/*** SHA-224: *********************************************************/
-void
-SHA224_Init(SHA224_CTX *context)
-{
-	if (context == NULL)
-		return;
-	memcpy(context->state, sha224_initial_hash_value, SHA256_DIGEST_LENGTH);
-	memset(context->buffer, 0, SHA256_BLOCK_LENGTH);
-	context->bitcount = 0;
-}
-
-void
-SHA224_Update(SHA224_CTX *context, const uint8 *data, size_t len)
-{
-	SHA256_Update((SHA256_CTX *) context, data, len);
-}
-
-void
-SHA224_Final(uint8 digest[], SHA224_CTX *context)
-{
-	/* If no digest buffer is passed, we don't bother doing this: */
-	if (digest != NULL)
-	{
-		SHA256_Last(context);
-
-#ifndef WORDS_BIGENDIAN
-		{
-			/* Convert TO host byte order */
-			int			j;
-
-			for (j = 0; j < 8; j++)
-			{
-				REVERSE32(context->state[j], context->state[j]);
-			}
-		}
-#endif
-		memcpy(digest, context->state, SHA224_DIGEST_LENGTH);
-	}
-
-	/* Clean up state data: */
-	memset(context, 0, sizeof(*context));
-}

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sha2.h
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sha2.h b/contrib/pgcrypto/sha2.h
deleted file mode 100644
index 8d593c6..0000000
--- a/contrib/pgcrypto/sha2.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*	$PostgreSQL: pgsql/contrib/pgcrypto/sha2.h,v 1.5 2009/06/11 14:48:52 momjian Exp $ */
-/*	$OpenBSD: sha2.h,v 1.2 2004/04/28 23:11:57 millert Exp $	*/
-
-/*
- * FILE:	sha2.h
- * AUTHOR:	Aaron D. Gifford <me...@aarongifford.com>
- *
- * Copyright (c) 2000-2001, Aaron D. Gifford
- * 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.
- * 3. Neither the name of the copyright holder nor the names of contributors
- *	  may be used to endorse or promote products derived from this software
- *	  without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``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 CONTRIBUTOR(S) 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.
- *
- * $From: sha2.h,v 1.1 2001/11/08 00:02:01 adg Exp adg $
- */
-
-#ifndef _SHA2_H
-#define _SHA2_H
-
-/* avoid conflict with OpenSSL */
-#define SHA256_Init pg_SHA256_Init
-#define SHA256_Update pg_SHA256_Update
-#define SHA256_Final pg_SHA256_Final
-#define SHA384_Init pg_SHA384_Init
-#define SHA384_Update pg_SHA384_Update
-#define SHA384_Final pg_SHA384_Final
-#define SHA512_Init pg_SHA512_Init
-#define SHA512_Update pg_SHA512_Update
-#define SHA512_Final pg_SHA512_Final
-
-/*** SHA-224/256/384/512 Various Length Definitions ***********************/
-#define SHA224_BLOCK_LENGTH		64
-#define SHA224_DIGEST_LENGTH		28
-#define SHA224_DIGEST_STRING_LENGTH (SHA224_DIGEST_LENGTH * 2 + 1)
-#define SHA256_BLOCK_LENGTH		64
-#define SHA256_DIGEST_LENGTH		32
-#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
-#define SHA384_BLOCK_LENGTH		128
-#define SHA384_DIGEST_LENGTH		48
-#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1)
-#define SHA512_BLOCK_LENGTH		128
-#define SHA512_DIGEST_LENGTH		64
-#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
-
-
-/*** SHA-256/384/512 Context Structures *******************************/
-typedef struct _SHA256_CTX
-{
-	uint32		state[8];
-	uint64		bitcount;
-	uint8		buffer[SHA256_BLOCK_LENGTH];
-} SHA256_CTX;
-typedef struct _SHA512_CTX
-{
-	uint64		state[8];
-	uint64		bitcount[2];
-	uint8		buffer[SHA512_BLOCK_LENGTH];
-} SHA512_CTX;
-
-typedef SHA256_CTX SHA224_CTX;
-typedef SHA512_CTX SHA384_CTX;
-
-void		SHA224_Init(SHA224_CTX *);
-void		SHA224_Update(SHA224_CTX *, const uint8 *, size_t);
-void		SHA224_Final(uint8[SHA224_DIGEST_LENGTH], SHA224_CTX *);
-
-void		SHA256_Init(SHA256_CTX *);
-void		SHA256_Update(SHA256_CTX *, const uint8 *, size_t);
-void		SHA256_Final(uint8[SHA256_DIGEST_LENGTH], SHA256_CTX *);
-
-void		SHA384_Init(SHA384_CTX *);
-void		SHA384_Update(SHA384_CTX *, const uint8 *, size_t);
-void		SHA384_Final(uint8[SHA384_DIGEST_LENGTH], SHA384_CTX *);
-
-void		SHA512_Init(SHA512_CTX *);
-void		SHA512_Update(SHA512_CTX *, const uint8 *, size_t);
-void		SHA512_Final(uint8[SHA512_DIGEST_LENGTH], SHA512_CTX *);
-
-#endif   /* _SHA2_H */

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/3des.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/3des.sql b/contrib/pgcrypto/sql/3des.sql
deleted file mode 100644
index 99b936f..0000000
--- a/contrib/pgcrypto/sql/3des.sql
+++ /dev/null
@@ -1,30 +0,0 @@
---
--- 3DES cipher
---
-
--- test vector from somewhere
-SELECT encode(encrypt(
-decode('80 00 00 00 00 00 00 00', 'hex'),
-decode('01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01
-	01 01 01 01 01 01 01 01', 'hex'),
-'3des-ecb/pad:none'), 'hex');
--- val 95 F8 A5 E5 DD 31 D9 00
-
-select encode(	encrypt('', 'foo', '3des'), 'hex');
--- 10 bytes key
-select encode(	encrypt('foo', '0123456789', '3des'), 'hex');
--- 22 bytes key
-select encode(	encrypt('foo', '0123456789012345678901', '3des'), 'hex');
-
--- decrypt
-select decrypt(encrypt('foo', '0123456', '3des'), '0123456', '3des');
-
--- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', '3des'), 'hex');
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', '3des');
-
--- long message
-select encode(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789012345678901', '3des'), '0123456789012345678901', '3des');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/blowfish.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/blowfish.sql b/contrib/pgcrypto/sql/blowfish.sql
deleted file mode 100644
index c0383f5..0000000
--- a/contrib/pgcrypto/sql/blowfish.sql
+++ /dev/null
@@ -1,91 +0,0 @@
---
--- Blowfish cipher
---
-
--- some standard Blowfish testvalues
-SELECT encode(encrypt(
-decode('0000000000000000', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('ffffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('1000000000000001', 'hex'),
-decode('3000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('1111111111111111', 'hex'),
-decode('1111111111111111', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('01a1d6d039776742', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
-SELECT encode(encrypt(
-decode('ffffffffffffffff', 'hex'),
-decode('0000000000000000', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
--- setkey
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f', 'hex'),
-'bf-ecb/pad:none'), 'hex');
-
--- with padding
-SELECT encode(encrypt(
-decode('01234567890123456789', 'hex'),
-decode('33443344334433443344334433443344', 'hex'),
-'bf-ecb'), 'hex');
-
--- cbc
-
--- 28 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f7220', 'hex'),
-'bf-cbc'), 'hex');
-
--- 29 bytes key
-SELECT encode(encrypt(
-decode('6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc', 'hex'),
-decode('37363534333231204e6f77206973207468652074696d6520666f722000', 'hex'),
-'bf-cbc'), 'hex');
-
--- blowfish-448 
-SELECT encode(encrypt(
-decode('fedcba9876543210', 'hex'),
-decode('f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455667704689104c2fd3b2f584023641aba61761f1f1f1f0e0e0e0effffffffffffffff', 'hex'),
-'bf-ecb/pad:none'), 'hex');
--- result: c04504012e4e1f53
-
--- empty data
-select encode(	encrypt('', 'foo', 'bf'), 'hex');
--- 10 bytes key
-select encode(	encrypt('foo', '0123456789', 'bf'), 'hex');
--- 22 bytes key
-select encode(	encrypt('foo', '0123456789012345678901', 'bf'), 'hex');
-
--- decrypt
-select decrypt(encrypt('foo', '0123456', 'bf'), '0123456', 'bf');
-
--- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'bf'), 'hex');
-select decrypt_iv(decode('95c7e89322525d59', 'hex'), '0123456', 'abcd', 'bf');
-
--- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'bf'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'bf'), '0123456789', 'bf');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/cast5.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/cast5.sql b/contrib/pgcrypto/sql/cast5.sql
deleted file mode 100644
index 0761f34..0000000
--- a/contrib/pgcrypto/sql/cast5.sql
+++ /dev/null
@@ -1,46 +0,0 @@
---
--- Cast5 cipher
---
-
--- test vectors from RFC2144
-
--- 128 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: 23 8B 4F E5 84 7E 44 B2
-
--- 80 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12 34 56 78 23 45', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: EB 6A 71 1A 2C 02 27 1B
-
--- 40 bit key
-SELECT encode(encrypt(
-decode('01 23 45 67 89 AB CD EF', 'hex'),
-decode('01 23 45 67 12', 'hex'),
-'cast5-ecb/pad:none'), 'hex');
--- result: 7A C8 16 D1 6E 9B 30 2E
-
--- cbc
-
--- empty data
-select encode(	encrypt('', 'foo', 'cast5'), 'hex');
--- 10 bytes key
-select encode(	encrypt('foo', '0123456789', 'cast5'), 'hex');
-
--- decrypt
-select decrypt(encrypt('foo', '0123456', 'cast5'), '0123456', 'cast5');
-
--- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'cast5'), 'hex');
-select decrypt_iv(decode('384a970695ce016a', 'hex'),
-                '0123456', 'abcd', 'cast5');
-
--- long message
-select encode(encrypt('Lets try a longer message.', '0123456789', 'cast5'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '0123456789', 'cast5'), '0123456789', 'cast5');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/crypt-blowfish.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/crypt-blowfish.sql b/contrib/pgcrypto/sql/crypt-blowfish.sql
deleted file mode 100644
index effc186..0000000
--- a/contrib/pgcrypto/sql/crypt-blowfish.sql
+++ /dev/null
@@ -1,18 +0,0 @@
---
--- crypt() and gen_salt(): bcrypt
---
-
-SELECT crypt('', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
-
-SELECT crypt('foox', '$2a$06$RQiOJ.3ELirrXwxIZY8q0O');
-
-CREATE TABLE ctest (data text, res text, salt text);
-INSERT INTO ctest VALUES ('password', '', '');
-
-UPDATE ctest SET salt = gen_salt('bf', 8);
-UPDATE ctest SET res = crypt(data, salt);
-SELECT res = crypt(data, res) AS "worked" 
-FROM ctest;
-
-DROP TABLE ctest;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/crypt-des.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/crypt-des.sql b/contrib/pgcrypto/sql/crypt-des.sql
deleted file mode 100644
index b13d2f9..0000000
--- a/contrib/pgcrypto/sql/crypt-des.sql
+++ /dev/null
@@ -1,18 +0,0 @@
---
--- crypt() and gen_salt(): crypt-des
---
-
-SELECT crypt('', 'NB');
-
-SELECT crypt('foox', 'NB');
-
-CREATE TABLE ctest (data text, res text, salt text);
-INSERT INTO ctest VALUES ('password', '', '');
-
-UPDATE ctest SET salt = gen_salt('des');
-UPDATE ctest SET res = crypt(data, salt);
-SELECT res = crypt(data, res) AS "worked"
-FROM ctest;
-
-DROP TABLE ctest;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/crypt-md5.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/crypt-md5.sql b/contrib/pgcrypto/sql/crypt-md5.sql
deleted file mode 100644
index 0002f0d..0000000
--- a/contrib/pgcrypto/sql/crypt-md5.sql
+++ /dev/null
@@ -1,18 +0,0 @@
---
--- crypt() and gen_salt(): md5
---
-
-SELECT crypt('', '$1$Szzz0yzz');
-
-SELECT crypt('foox', '$1$Szzz0yzz');
-
-CREATE TABLE ctest (data text, res text, salt text);
-INSERT INTO ctest VALUES ('password', '', '');
-
-UPDATE ctest SET salt = gen_salt('md5');
-UPDATE ctest SET res = crypt(data, salt);
-SELECT res = crypt(data, res) AS "worked"
-FROM ctest;
-
-DROP TABLE ctest;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/crypt-xdes.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/crypt-xdes.sql b/contrib/pgcrypto/sql/crypt-xdes.sql
deleted file mode 100644
index 51271db..0000000
--- a/contrib/pgcrypto/sql/crypt-xdes.sql
+++ /dev/null
@@ -1,18 +0,0 @@
---
--- crypt() and gen_salt(): extended des
---
-
-SELECT crypt('', '_J9..j2zz');
-
-SELECT crypt('foox', '_J9..j2zz');
-
-CREATE TABLE ctest (data text, res text, salt text);
-INSERT INTO ctest VALUES ('password', '', '');
-
-UPDATE ctest SET salt = gen_salt('xdes', 1001);
-UPDATE ctest SET res = crypt(data, salt);
-SELECT res = crypt(data, res) AS "worked"
-FROM ctest;
-
-DROP TABLE ctest;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/des.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/des.sql b/contrib/pgcrypto/sql/des.sql
deleted file mode 100644
index 179bd83..0000000
--- a/contrib/pgcrypto/sql/des.sql
+++ /dev/null
@@ -1,28 +0,0 @@
---
--- DES cipher
---
-
--- no official test vectors atm
-
--- from blowfish.sql
-SELECT encode(encrypt(
-decode('0123456789abcdef', 'hex'),
-decode('fedcba9876543210', 'hex'),
-'des-ecb/pad:none'), 'hex');
-
--- empty data
-select encode(	encrypt('', 'foo', 'des'), 'hex');
--- 8 bytes key
-select encode(	encrypt('foo', '01234589', 'des'), 'hex');
-
--- decrypt
-select decrypt(encrypt('foo', '0123456', 'des'), '0123456', 'des');
-
--- iv
-select encode(encrypt_iv('foo', '0123456', 'abcd', 'des'), 'hex');
-select decrypt_iv(decode('50735067b073bb93', 'hex'), '0123456', 'abcd', 'des');
-
--- long message
-select encode(encrypt('Lets try a longer message.', '01234567', 'des'), 'hex');
-select decrypt(encrypt('Lets try a longer message.', '01234567', 'des'), '01234567', 'des');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/hmac-md5.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/hmac-md5.sql b/contrib/pgcrypto/sql/hmac-md5.sql
deleted file mode 100644
index 70bef7c..0000000
--- a/contrib/pgcrypto/sql/hmac-md5.sql
+++ /dev/null
@@ -1,46 +0,0 @@
---
--- HMAC-MD5
---
-
-SELECT encode(hmac(
-'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'md5'), 'hex');
-
--- 2
-SELECT encode(hmac(
-'Jefe',
-'what do ya want for nothing?',
-'md5'), 'hex');
-
--- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-
--- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'md5'), 'hex');
-
--- 5
-SELECT encode(hmac(
-'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'md5'), 'hex');
-
--- 6
-SELECT encode(hmac(
-'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-
--- 7
-SELECT encode(hmac(
-'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'md5'), 'hex');
-
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/hmac-sha1.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/hmac-sha1.sql b/contrib/pgcrypto/sql/hmac-sha1.sql
deleted file mode 100644
index 4adf6ed..0000000
--- a/contrib/pgcrypto/sql/hmac-sha1.sql
+++ /dev/null
@@ -1,46 +0,0 @@
---
--- HMAC-MD5
---
-
-SELECT encode(hmac(
-'Hi There',
-decode('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b', 'hex'),
-'sha1'), 'hex');
-
--- 2
-SELECT encode(hmac(
-'Jefe',
-'what do ya want for nothing?',
-'sha1'), 'hex');
-
--- 3
-SELECT encode(hmac(
-decode('dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'hex'),
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-
--- 4
-SELECT encode(hmac(
-decode('cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd', 'hex'),
-decode('0102030405060708090a0b0c0d0e0f10111213141516171819', 'hex'),
-'sha1'), 'hex');
-
--- 5
-SELECT encode(hmac(
-'Test With Truncation',
-decode('0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c', 'hex'),
-'sha1'), 'hex');
-
--- 6
-SELECT encode(hmac(
-'Test Using Larger Than Block-Size Key - Hash Key First',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-
--- 7
-SELECT encode(hmac(
-'Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data',
-decode('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'hex'),
-'sha1'), 'hex');
-
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/init.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/init.sql b/contrib/pgcrypto/sql/init.sql
deleted file mode 100644
index d11d131..0000000
--- a/contrib/pgcrypto/sql/init.sql
+++ /dev/null
@@ -1,18 +0,0 @@
---
--- init pgcrypto
---
-
-\set ECHO none
-\i pgcrypto.sql
-\set ECHO all
-
--- check for encoding fn's
-SELECT encode('foo', 'hex');
-SELECT pg_catalog.decode('666f6f', 'hex');
-
--- check error handling
-select gen_salt('foo');
-select digest('foo', 'foo');
-select hmac('foo', 'foo', 'foo');
-select encrypt('foo', 'foo', 'foo');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/md5.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/md5.sql b/contrib/pgcrypto/sql/md5.sql
deleted file mode 100644
index d6e5027..0000000
--- a/contrib/pgcrypto/sql/md5.sql
+++ /dev/null
@@ -1,12 +0,0 @@
---
--- MD5 message digest
---
-
-SELECT encode(digest('', 'md5'), 'hex');
-SELECT encode(digest('a', 'md5'), 'hex');
-SELECT encode(digest('abc', 'md5'), 'hex');
-SELECT encode(digest('message digest', 'md5'), 'hex');
-SELECT encode(digest('abcdefghijklmnopqrstuvwxyz', 'md5'), 'hex');
-SELECT encode(digest('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'md5'), 'hex');
-SELECT encode(digest('12345678901234567890123456789012345678901234567890123456789012345678901234567890', 'md5'), 'hex');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-armor.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-armor.sql b/contrib/pgcrypto/sql/pgp-armor.sql
deleted file mode 100644
index 040c4ac..0000000
--- a/contrib/pgcrypto/sql/pgp-armor.sql
+++ /dev/null
@@ -1,56 +0,0 @@
---
--- PGP Armor
---
-
-select armor('');
-select armor('test');
-select dearmor(armor(''));
-select dearmor(armor('zooka'));
-
-select armor('0123456789abcdef0123456789abcdef0123456789abcdef
-0123456789abcdef0123456789abcdef0123456789abcdef');
-
--- lots formatting
-select dearmor(' a pgp msg:
-
------BEGIN PGP MESSAGE-----
-Comment: Some junk
-
-em9va2E=
-
-  =D5cR
-
------END PGP MESSAGE-----');
-
--- lots messages
-select dearmor('
-wrong packet:
-  -----BEGIN PGP MESSAGE-----
-
-  d3Jvbmc=
-  =vCYP
-  -----END PGP MESSAGE-----
-
-right packet:
------BEGIN PGP MESSAGE-----
-
-cmlnaHQ=
-=nbpj
------END PGP MESSAGE-----
-
-use only first packet
------BEGIN PGP MESSAGE-----
-
-d3Jvbmc=
-=vCYP
------END PGP MESSAGE-----
-');
-
--- bad crc
-select dearmor('
------BEGIN PGP MESSAGE-----
-
-em9va2E=
-=ZZZZ
------END PGP MESSAGE-----
-');

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-compression.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-compression.sql b/contrib/pgcrypto/sql/pgp-compression.sql
deleted file mode 100644
index f71c176..0000000
--- a/contrib/pgcrypto/sql/pgp-compression.sql
+++ /dev/null
@@ -1,31 +0,0 @@
---
--- PGP compression support
---
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-
-ww0ECQMCsci6AdHnELlh0kQB4jFcVwHMJg0Bulop7m3Mi36s15TAhBo0AnzIrRFrdLVCkKohsS6+
-DMcmR53SXfLoDJOv/M8uKj3QSq7oWNIp95pxfA==
-=tbSn
------END PGP MESSAGE-----
-'), 'key', 'expect-compress-algo=1');
-
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret message', 'key', 'compress-algo=0'),
-	'key', 'expect-compress-algo=0');
-
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret message', 'key', 'compress-algo=1'),
-	'key', 'expect-compress-algo=1');
-
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret message', 'key', 'compress-algo=2'),
-	'key', 'expect-compress-algo=2');
-
--- level=0 should turn compression off
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret message', 'key',
-			'compress-algo=2, compress-level=0'),
-	'key', 'expect-compress-algo=0');
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-decrypt.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-decrypt.sql b/contrib/pgcrypto/sql/pgp-decrypt.sql
deleted file mode 100644
index 93535ab..0000000
--- a/contrib/pgcrypto/sql/pgp-decrypt.sql
+++ /dev/null
@@ -1,266 +0,0 @@
---
--- pgp_descrypt tests
---
-
---  Checking ciphers
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.blowfish.sha1.mdc.s2k3.z0
-
-jA0EBAMCfFNwxnvodX9g0jwB4n4s26/g5VmKzVab1bX1SmwY7gvgvlWdF3jKisvS
-yA6Ce1QTMK3KdL2MPfamsTUSAML8huCJMwYQFfE=
-=JcP+
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCci97v0Q6Z0Zg0kQBsVf5Oe3iC+FBzUmuMV9KxmAyOMyjCc/5i8f1Eest
-UTAsG35A1vYs02VARKzGz6xI2UHwFUirP+brPBg3Ee7muOx8pA==
-=XtrP
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes192.sha1.mdc.s2k3.z0
-
-jA0ECAMCI7YQpWqp3D1g0kQBCjB7GlX7+SQeXNleXeXQ78ZAPNliquGDq9u378zI
-5FPTqAhIB2/2fjY8QEIs1ai00qphjX2NitxV/3Wn+6dufB4Q4g==
-=rCZt
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes256.sha1.mdc.s2k3.z0
-
-jA0ECQMC4f/5djqCC1Rg0kQBTHEPsD+Sw7biBsM2er3vKyGPAQkuTBGKC5ie7hT/
-lceMfQdbAg6oTFyJpk/wH18GzRDphCofg0X8uLgkAKMrpcmgog==
-=fB6S
------END PGP MESSAGE-----
-'), 'foobar');
-
--- Checking MDC modes
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.nomdc.s2k3.z0
-
-jA0EBwMCnv07rlXqWctgyS2Dm2JfOKCRL4sLSLJUC8RS2cH7cIhKSuLitOtyquB+
-u9YkgfJfsuRJmgQ9tmo=
-=60ui
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCEeP3idNjQ1Bg0kQBf4G0wX+2QNzLh2YNwYkQgQkfYhn/hLXjV4nK9nsE
-8Ex1Dsdt5UPvOz8W8VKQRS6loOfOe+yyXil8W3IYFwUpdDUi+Q==
-=moGf
------END PGP MESSAGE-----
-'), 'foobar');
-
--- Checking hashes
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.md5.mdc.s2k3.z0
-
-jA0EBwMClrXXtOXetohg0kQBn0Kl1ymevQZRHkdoYRHgzCwSQEiss7zYff2UNzgO
-KyRrHf7zEBuZiZ2AG34jNVMOLToj1jJUg5zTSdecUzQVCykWTA==
-=NyLk
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCApbdlrURoWJg0kQBzHM/E0o7djY82bNuspjxjAcPFrrtp0uvDdMQ4z2m
-/PM8jhgI5vxFYfNQjLl8y3fHYIomk9YflN9K/Q13iq8A8sjeTw==
-=FxbQ
------END PGP MESSAGE-----
-'), 'foobar');
-
--- Checking S2K modes
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k0.z0
-
-jAQEBwAC0kQBKTaLAKE3xzps+QIZowqRNb2eAdzBw2LxEW2YD5PgNlbhJdGg+dvw
-Ah9GXjGS1TVALzTImJbz1uHUZRfhJlFbc5yGQw==
-=YvkV
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k1.z0
-
-jAwEBwEC/QTByBLI3b/SRAHPxKzI6SZBo5lAEOD+EsvKQWO4adL9tDY+++Iqy1xK
-4IaWXVKEj9R2Lr2xntWWMGZtcKtjD2lFFRXXd9dZp1ZThNDz
-=dbXm
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCEq4Su3ZqNEJg0kQB4QG5jBTKF0i04xtH+avzmLhstBNRxvV3nsmB3cwl
-z+9ZaA/XdSx5ZiFnMym8P6r8uY9rLjjNptvvRHlxIReF+p9MNg==
-=VJKg
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes192.sha1.mdc.s2k0.z0
-
-jAQECAAC0kQBBDnQWkgsx9YFaqDfWmpsiyAJ6y2xG/sBvap1dySYEMuZ+wJTXQ9E
-Cr3i2M7TgVZ0M4jp4QL0adG1lpN5iK7aQeOwMw==
-=cg+i
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes192.sha1.mdc.s2k1.z0
-
-jAwECAECruOfyNDFiTnSRAEVoGXm4A9UZKkWljdzjEO/iaE7mIraltIpQMkiqCh9
-7h8uZ2u9uRBOv222fZodGvc6bvq/4R4hAa/6qSHtm8mdmvGt
-=aHmC
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes192.sha1.mdc.s2k3.z0
-
-jA0ECAMCjFn6SRi3SONg0kQBqtSHPaD0m7rXfDAhCWU/ypAsI93GuHGRyM99cvMv
-q6eF6859ZVnli3BFSDSk3a4e/pXhglxmDYCfjAXkozKNYLo6yw==
-=K0LS
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes256.sha1.mdc.s2k0.z0
-
-jAQECQAC0kQB4L1eMbani07XF2ZYiXNK9LW3v8w41oUPl7dStmrJPQFwsdxmrDHu
-rQr3WbdKdY9ufjOE5+mXI+EFkSPrF9rL9NCq6w==
-=RGts
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes256.sha1.mdc.s2k1.z0
-
-jAwECQECKHhrou7ZOIXSRAHWIVP+xjVQcjAVBTt+qh9SNzYe248xFTwozkwev3mO
-+KVJW0qhk0An+Y2KF99/bYFl9cL5D3Tl43fC8fXGl3x3m7pR
-=SUrU
------END PGP MESSAGE-----
-'), 'foobar');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes256.sha1.mdc.s2k3.z0
-
-jA0ECQMCjc8lwZu8Fz1g0kQBkEzjImi21liep5jj+3dAJ2aZFfUkohi8b3n9z+7+
-4+NRzL7cMW2RLAFnJbiqXDlRHMwleeuLN1up2WIxsxtYYuaBjA==
-=XZrG
------END PGP MESSAGE-----
-'), 'foobar');
-
--- Checking longer passwords
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCx6dBiuqrYNRg0kQBEo63AvA1SCslxP7ayanLf1H0/hlk2nONVhTwVEWi
-tTGup1mMz6Cfh1uDRErUuXpx9A0gdMu7zX0o5XjrL7WGDAZdSw==
-=XKKG
------END PGP MESSAGE-----
-'), '0123456789abcdefghij');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCBDvYuS990iFg0kQBW31UK5OiCjWf5x6KJ8qNNT2HZWQCjCBZMU0XsOC6
-CMxFKadf144H/vpoV9GA0f22keQgCl0EsTE4V4lweVOPTKCMJg==
-=gWDh
------END PGP MESSAGE-----
-'), '0123456789abcdefghij2jk4h5g2j54khg23h54g2kh54g2khj54g23hj54');
-
-select pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCqXbFafC+ofVg0kQBejyiPqH0QMERVGfmPOjtAxvyG5KDIJPYojTgVSDt
-FwsDabdQUz5O7bgNSnxfmyw1OifGF+W2bIn/8W+0rDf8u3+O+Q==
-=OxOF
------END PGP MESSAGE-----
-'), 'x');
-
--- Checking various data
-select encode(digest(pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat1.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCGJ+SpuOysINg0kQBJfSjzsW0x4OVcAyr17O7FBvMTwIGeGcJd99oTQU8
-Xtx3kDqnhUq9Z1fS3qPbi5iNP2A9NxOBxPWz2JzxhydANlgbxg==
-=W/ik
------END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: 0225e3ede6f2587b076d021a189ff60aad67e066
-
-select encode(digest(pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat2.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCvdpDvidNzMxg0jUBvj8eS2+1t/9/zgemxvhtc0fvdKGGbjH7dleaTJRB
-SaV9L04ky1qECNDx3XjnoKLC+H7IOQ==
-=Fxen
------END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: da39a3ee5e6b4b0d3255bfef95601890afd80709
-
-select encode(digest(pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: dat3.aes.sha1.mdc.s2k3.z0
-
-jA0EBwMCxQvxJZ3G/HRg0lgBeYmTa7/uDAjPyFwSX4CYBgpZWVn/JS8JzILrcWF8
-gFnkUKIE0PSaYFp+Yi1VlRfUtRQ/X/LYNGa7tWZS+4VQajz2Xtz4vUeAEiYFYPXk
-73Hb8m1yRhQK
-=ivrD
------END PGP MESSAGE-----
-'), '0123456789abcdefghij'), 'sha1'), 'hex');
--- expected: 5e5c135efc0dd00633efc6dfd6e731ea408a5b4c
-
--- Checking CRLF
-select encode(digest(pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: crlf mess
-
-ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
-a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
-=mBP9
------END PGP MESSAGE-----
-'), 'key', 'convert-crlf=0'), 'sha1'), 'hex');
--- expected: 9353062be7720f1446d30b9e75573a4833886784
-
-select encode(digest(pgp_sym_decrypt(dearmor('
------BEGIN PGP MESSAGE-----
-Comment: crlf mess
-
-ww0ECQMCt7VAtby6l4Bi0lgB5KMIZiiF/b3CfMfUyY0eDncsGXtkbu1X+l9brjpMP8eJnY79Amms
-a3nsOzKTXUfS9VyaXo8IrncM6n7fdaXpwba/3tNsAhJG4lDv1k4g9v8Ix2dfv6Rs
-=mBP9
------END PGP MESSAGE-----
-'), 'key', 'convert-crlf=1'), 'sha1'), 'hex');
--- expected: 7efefcab38467f7484d6fa43dc86cf5281bd78e2

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-encrypt-DISABLED.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-encrypt-DISABLED.sql b/contrib/pgcrypto/sql/pgp-encrypt-DISABLED.sql
deleted file mode 100644
index 80fb4d1..0000000
--- a/contrib/pgcrypto/sql/pgp-encrypt-DISABLED.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-
--- no random source
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-encrypt.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-encrypt.sql b/contrib/pgcrypto/sql/pgp-encrypt.sql
deleted file mode 100644
index b663e05..0000000
--- a/contrib/pgcrypto/sql/pgp-encrypt.sql
+++ /dev/null
@@ -1,96 +0,0 @@
---
--- PGP encrypt
---
-
-select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key');
-
--- check whether the defaults are ok
-select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'),
- 	'key', 'expect-cipher-algo=aes128,
-		expect-disable-mdc=0,
-		expect-sess-key=0,
-		expect-s2k-mode=3,
-		expect-s2k-digest-algo=sha1,
-		expect-compress-algo=0
-		');
-
--- maybe the expect- stuff simply does not work
-select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'),
- 	'key', 'expect-cipher-algo=bf,
-		expect-disable-mdc=1,
-		expect-sess-key=1,
-		expect-s2k-mode=0,
-		expect-s2k-digest-algo=md5,
-		expect-compress-algo=1
-		');
-
--- bytea as text
-select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz');
-
--- text as bytea
-select pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz');
-
-
--- algorithm change
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=bf'),
- 	'key', 'expect-cipher-algo=bf');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes'),
- 	'key', 'expect-cipher-algo=aes128');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes192'),
- 	'key', 'expect-cipher-algo=aes192');
-
--- s2k change
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 's2k-mode=0'),
- 	'key', 'expect-s2k-mode=0');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 's2k-mode=1'),
- 	'key', 'expect-s2k-mode=1');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 's2k-mode=3'),
- 	'key', 'expect-s2k-mode=3');
-
--- s2k digest change
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=md5'),
- 	'key', 'expect-s2k-digest-algo=md5');
-select pgp_sym_decrypt(
-		pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=sha1'),
- 	'key', 'expect-s2k-digest-algo=sha1');
-
--- sess key
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'sess-key=0'),
- 	'key', 'expect-sess-key=0');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'sess-key=1'),
- 	'key', 'expect-sess-key=1');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=bf'),
- 	'key', 'expect-sess-key=1, expect-cipher-algo=bf');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes192'),
- 	'key', 'expect-sess-key=1, expect-cipher-algo=aes192');
-select pgp_sym_decrypt(
-	pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes256'),
- 	'key', 'expect-sess-key=1, expect-cipher-algo=aes256');
-
--- no mdc
-select pgp_sym_decrypt(
-		pgp_sym_encrypt('Secret.', 'key', 'disable-mdc=1'),
- 	'key', 'expect-disable-mdc=1');
-
--- crlf
-select encode(pgp_sym_decrypt_bytea(
-	pgp_sym_encrypt('1\n2\n3\r\n', 'key', 'convert-crlf=1'),
- 	'key'), 'hex');
-
--- conversion should be lossless
-select encode(digest(pgp_sym_decrypt(
-  pgp_sym_encrypt('\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'),
- 	'key', 'convert-crlf=1'), 'sha1'), 'hex') as result,
-  encode(digest('\r\n0\n1\r\r\n\n2\r', 'sha1'), 'hex') as expect;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-info.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-info.sql b/contrib/pgcrypto/sql/pgp-info.sql
deleted file mode 100644
index c525ce3..0000000
--- a/contrib/pgcrypto/sql/pgp-info.sql
+++ /dev/null
@@ -1,23 +0,0 @@
---
--- PGP info functions
---
-
--- pgp_key_id
-
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=1;
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=2;
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=3;
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=4; -- should fail
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=5;
-select pgp_key_id(dearmor(pubkey)) from keytbl where id=6;
-
-select pgp_key_id(dearmor(seckey)) from keytbl where id=1;
-select pgp_key_id(dearmor(seckey)) from keytbl where id=2;
-select pgp_key_id(dearmor(seckey)) from keytbl where id=3;
-select pgp_key_id(dearmor(seckey)) from keytbl where id=4; -- should fail
-select pgp_key_id(dearmor(seckey)) from keytbl where id=5;
-select pgp_key_id(dearmor(seckey)) from keytbl where id=6;
-
-select pgp_key_id(dearmor(data)) as data_key_id
-from encdata order by id;
-

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/101adfab/contrib/pgcrypto/sql/pgp-pubkey-DISABLED.sql
----------------------------------------------------------------------
diff --git a/contrib/pgcrypto/sql/pgp-pubkey-DISABLED.sql b/contrib/pgcrypto/sql/pgp-pubkey-DISABLED.sql
deleted file mode 100644
index b4aec5d..0000000
--- a/contrib/pgcrypto/sql/pgp-pubkey-DISABLED.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-
--- no bignum support
-