p512.c revision 55714
137Srgrimes/* crypto/dh/p512.c */
237Srgrimes/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
337Srgrimes * All rights reserved.
437Srgrimes *
537Srgrimes * This package is an SSL implementation written
637Srgrimes * by Eric Young (eay@cryptsoft.com).
737Srgrimes * The implementation was written so as to conform with Netscapes SSL.
837Srgrimes *
9476Srgrimes * This library is free for commercial and non-commercial use as long as
1037Srgrimes * the following conditions are aheared to.  The following conditions
1137Srgrimes * apply to all code found in this distribution, be it the RC4, RSA,
1237Srgrimes * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
1337Srgrimes * included with this distribution is covered by the same copyright terms
1437Srgrimes * except that the holder is Tim Hudson (tjh@cryptsoft.com).
1537Srgrimes *
1637Srgrimes * Copyright remains Eric Young's, and as such any Copyright notices in
1737Srgrimes * the code are not to be removed.
1837Srgrimes * If this package is used in a product, Eric Young should be given attribution
1937Srgrimes * as the author of the parts of the library used.
2037Srgrimes * This can be in the form of a textual message at program startup or
2137Srgrimes * in documentation (online or textual) provided with the package.
2237Srgrimes *
2337Srgrimes * Redistribution and use in source and binary forms, with or without
2437Srgrimes * modification, are permitted provided that the following conditions
2537Srgrimes * are met:
2637Srgrimes * 1. Redistributions of source code must retain the copyright
2737Srgrimes *    notice, this list of conditions and the following disclaimer.
2837Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
2937Srgrimes *    notice, this list of conditions and the following disclaimer in the
301141Sache *    documentation and/or other materials provided with the distribution.
311141Sache * 3. All advertising materials mentioning features or use of this software
321141Sache *    must display the following acknowledgement:
331141Sache *    "This product includes cryptographic software written by
341141Sache *     Eric Young (eay@cryptsoft.com)"
357708Srgrimes *    The word 'cryptographic' can be left out if the rouines from the library
3611137Sjoerg *    being used are not cryptographic related :-).
3711137Sjoerg * 4. If you include any Windows specific code (or a derivative thereof) from
381141Sache *    the apps directory (application code) you must include an acknowledgement:
3911137Sjoerg *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
4011137Sjoerg *
4111137Sjoerg * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
4211137Sjoerg * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
4311137Sjoerg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
4411137Sjoerg * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
4511137Sjoerg * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
4611137Sjoerg * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
4711137Sjoerg * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
481141Sache * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
491141Sache * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
501141Sache * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
511141Sache * SUCH DAMAGE.
521141Sache *
531141Sache * The licence and distribution terms for any publically available version or
541141Sache * derivative of this code cannot be changed.  i.e. this code cannot simply be
551141Sache * copied and put under another distribution licence
561141Sache * [including the GNU Public Licence.]
571141Sache */
581141Sache
591141Sache#include <stdio.h>
601141Sache#include <openssl/bn.h>
611182Srgrimes#include <openssl/asn1.h>
621144Sache#include <openssl/dh.h>
631141Sache#include <openssl/pem.h>
641141Sache
651141Sacheunsigned char data[]={
661141Sache0xDA,0x58,0x3C,0x16,0xD9,0x85,0x22,0x89,
671182Srgrimes0xD0,0xE4,0xAF,0x75,0x6F,0x4C,0xCA,0x92,
681141Sache0xDD,0x4B,0xE5,0x33,0xB8,0x04,0xFB,0x0F,
691141Sache0xED,0x94,0xEF,0x9C,0x8A,0x44,0x03,0xED,
701141Sache0x57,0x46,0x50,0xD3,0x69,0x99,0xDB,0x29,
711141Sache0xD7,0x76,0x27,0x6B,0xA2,0xD3,0xD4,0x12,
721141Sache0xE2,0x18,0xF4,0xDD,0x1E,0x08,0x4C,0xF6,
731141Sache0xD8,0x00,0x3E,0x7C,0x47,0x74,0xE8,0x33,
741141Sache	};
751141Sache
761141Sachemain()
771141Sache	{
781141Sache	DH *dh;
791141Sache
801141Sache	dh=DH_new();
811141Sache	dh->p=BN_bin2bn(data,sizeof(data),NULL);
821141Sache	dh->g=BN_new();
831141Sache	BN_set_word(dh->g,2);
841141Sache	PEM_write_DHparams(stdout,dh);
851141Sache	}
861141Sache