diff options
Diffstat (limited to 'openssl/crypto/pqueue')
| -rw-r--r-- | openssl/crypto/pqueue/pq_test.c | 95 | ||||
| -rw-r--r-- | openssl/crypto/pqueue/pqueue.c | 252 | ||||
| -rw-r--r-- | openssl/crypto/pqueue/pqueue.h | 94 | 
3 files changed, 0 insertions, 441 deletions
diff --git a/openssl/crypto/pqueue/pq_test.c b/openssl/crypto/pqueue/pq_test.c deleted file mode 100644 index 8d496dfc..00000000 --- a/openssl/crypto/pqueue/pq_test.c +++ /dev/null @@ -1,95 +0,0 @@ -/* crypto/pqueue/pq_test.c */ -/*  - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.   - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project.  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. All advertising materials mentioning features or use of this - *    software must display the following acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - *    endorse or promote products derived from this software without - *    prior written permission. For written permission, please contact - *    openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - *    nor may "OpenSSL" appear in their names without prior written - *    permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - *    acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED 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 OpenSSL PROJECT OR - * ITS 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. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com).  This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include "pqueue.h" - -int -main(void) -	{ -	pitem *item; -	pqueue pq; - -	pq = pqueue_new(); - -	item = pitem_new(3, NULL); -	pqueue_insert(pq, item); - -	item = pitem_new(1, NULL); -	pqueue_insert(pq, item); - -	item = pitem_new(2, NULL); -	pqueue_insert(pq, item); - -	item = pqueue_find(pq, 1); -	fprintf(stderr, "found %ld\n", item->priority); - -	item = pqueue_find(pq, 2); -	fprintf(stderr, "found %ld\n", item->priority); - -	item = pqueue_find(pq, 3); -	fprintf(stderr, "found %ld\n", item ? item->priority: 0); - -	pqueue_print(pq); - -	for(item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq)) -		pitem_free(item); - -	pqueue_free(pq); -	return 0; -	} diff --git a/openssl/crypto/pqueue/pqueue.c b/openssl/crypto/pqueue/pqueue.c deleted file mode 100644 index eab13a12..00000000 --- a/openssl/crypto/pqueue/pqueue.c +++ /dev/null @@ -1,252 +0,0 @@ -/* crypto/pqueue/pqueue.c */ -/*  - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.   - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project.  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. All advertising materials mentioning features or use of this - *    software must display the following acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - *    endorse or promote products derived from this software without - *    prior written permission. For written permission, please contact - *    openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - *    nor may "OpenSSL" appear in their names without prior written - *    permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - *    acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED 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 OpenSSL PROJECT OR - * ITS 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. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com).  This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include "cryptlib.h" -#include <openssl/bn.h> -#include "pqueue.h" - -typedef struct _pqueue -	{ -	pitem *items; -	int count; -	} pqueue_s; - -pitem * -pitem_new(unsigned char *prio64be, void *data) -	{ -	pitem *item = (pitem *) OPENSSL_malloc(sizeof(pitem)); -	if (item == NULL) return NULL; - -	memcpy(item->priority,prio64be,sizeof(item->priority)); - -	item->data = data; -	item->next = NULL; - -	return item; -	} - -void -pitem_free(pitem *item) -	{ -	if (item == NULL) return; - -	OPENSSL_free(item); -	} - -pqueue_s * -pqueue_new() -	{ -	pqueue_s *pq = (pqueue_s *) OPENSSL_malloc(sizeof(pqueue_s)); -	if (pq == NULL) return NULL; - -	memset(pq, 0x00, sizeof(pqueue_s)); -	return pq; -	} - -void -pqueue_free(pqueue_s *pq) -	{ -	if (pq == NULL) return; - -	OPENSSL_free(pq); -	} - -pitem * -pqueue_insert(pqueue_s *pq, pitem *item) -	{ -	pitem *curr, *next; - -	if (pq->items == NULL) -		{ -		pq->items = item; -		return item; -		} - -	for(curr = NULL, next = pq->items;  -		next != NULL; -		curr = next, next = next->next) -		{ -		/* we can compare 64-bit value in big-endian encoding -		 * with memcmp:-) */ -		int cmp = memcmp(next->priority, item->priority,8); -		if (cmp > 0)		/* next > item */ -			{ -			item->next = next; - -			if (curr == NULL)  -				pq->items = item; -			else   -				curr->next = item; - -			return item; -			} -		 -		else if (cmp == 0)	/* duplicates not allowed */ -			return NULL; -		} - -	item->next = NULL; -	curr->next = item; - -	return item; -	} - -pitem * -pqueue_peek(pqueue_s *pq) -	{ -	return pq->items; -	} - -pitem * -pqueue_pop(pqueue_s *pq) -	{ -	pitem *item = pq->items; - -	if (pq->items != NULL) -		pq->items = pq->items->next; - -	return item; -	} - -pitem * -pqueue_find(pqueue_s *pq, unsigned char *prio64be) -	{ -	pitem *next; -	pitem *found = NULL; - -	if ( pq->items == NULL) -		return NULL; - -	for ( next = pq->items; next->next != NULL; next = next->next) -		{ -		if ( memcmp(next->priority, prio64be,8) == 0) -			{ -			found = next; -			break; -			} -		} -	 -	/* check the one last node */ -	if ( memcmp(next->priority, prio64be,8) ==0) -		found = next; - -	if ( ! found) -		return NULL; - -#if 0 /* find works in peek mode */ -	if ( prev == NULL) -		pq->items = next->next; -	else -		prev->next = next->next; -#endif - -	return found; -	} - -void -pqueue_print(pqueue_s *pq) -	{ -	pitem *item = pq->items; - -	while(item != NULL) -		{ -		printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n", -			item->priority[0],item->priority[1], -			item->priority[2],item->priority[3], -			item->priority[4],item->priority[5], -			item->priority[6],item->priority[7]); -		item = item->next; -		} -	} - -pitem * -pqueue_iterator(pqueue_s *pq) -	{ -	return pqueue_peek(pq); -	} - -pitem * -pqueue_next(pitem **item) -	{ -	pitem *ret; - -	if ( item == NULL || *item == NULL) -		return NULL; - - -	/* *item != NULL */ -	ret = *item; -	*item = (*item)->next; - -	return ret; -	} - -int -pqueue_size(pqueue_s *pq) -{ -	pitem *item = pq->items; -	int count = 0; -	 -	while(item != NULL) -	{ -		count++; -		item = item->next; -	} -	return count; -} diff --git a/openssl/crypto/pqueue/pqueue.h b/openssl/crypto/pqueue/pqueue.h deleted file mode 100644 index 87fc9037..00000000 --- a/openssl/crypto/pqueue/pqueue.h +++ /dev/null @@ -1,94 +0,0 @@ -/* crypto/pqueue/pqueue.h */ -/*  - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.   - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project.  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. All advertising materials mentioning features or use of this - *    software must display the following acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - *    endorse or promote products derived from this software without - *    prior written permission. For written permission, please contact - *    openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - *    nor may "OpenSSL" appear in their names without prior written - *    permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - *    acknowledgment: - *    "This product includes software developed by the OpenSSL Project - *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED 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 OpenSSL PROJECT OR - * ITS 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. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com).  This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_PQUEUE_H -#define HEADER_PQUEUE_H - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -typedef struct _pqueue *pqueue; - -typedef struct _pitem -	{ -	unsigned char priority[8]; /* 64-bit value in big-endian encoding */ -	void *data; -	struct _pitem *next; -	} pitem; - -typedef struct _pitem *piterator; - -pitem *pitem_new(unsigned char *prio64be, void *data); -void   pitem_free(pitem *item); - -pqueue pqueue_new(void); -void   pqueue_free(pqueue pq); - -pitem *pqueue_insert(pqueue pq, pitem *item); -pitem *pqueue_peek(pqueue pq); -pitem *pqueue_pop(pqueue pq); -pitem *pqueue_find(pqueue pq, unsigned char *prio64be); -pitem *pqueue_iterator(pqueue pq); -pitem *pqueue_next(piterator *iter); - -void   pqueue_print(pqueue pq); -int    pqueue_size(pqueue pq); - -#endif /* ! HEADER_PQUEUE_H */  | 
