1068e7061SPeter Avalos /*- 2068e7061SPeter Avalos * Copyright (c) 1991, 1993 3068e7061SPeter Avalos * Dave Safford. All rights reserved. 4068e7061SPeter Avalos * 5068e7061SPeter Avalos * Redistribution and use in source and binary forms, with or without 6068e7061SPeter Avalos * modification, are permitted provided that the following conditions 7068e7061SPeter Avalos * are met: 8068e7061SPeter Avalos * 1. Redistributions of source code must retain the above copyright 9068e7061SPeter Avalos * notice, this list of conditions and the following disclaimer. 10068e7061SPeter Avalos * 2. Redistributions in binary form must reproduce the above copyright 11068e7061SPeter Avalos * notice, this list of conditions and the following disclaimer in the 12068e7061SPeter Avalos * documentation and/or other materials provided with the distribution. 13068e7061SPeter Avalos * 3. Neither the name of the University nor the names of its contributors 14068e7061SPeter Avalos * may be used to endorse or promote products derived from this software 15068e7061SPeter Avalos * without specific prior written permission. 16068e7061SPeter Avalos * 17068e7061SPeter Avalos * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18068e7061SPeter Avalos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19068e7061SPeter Avalos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20068e7061SPeter Avalos * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21068e7061SPeter Avalos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22068e7061SPeter Avalos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23068e7061SPeter Avalos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24068e7061SPeter Avalos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25068e7061SPeter Avalos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26068e7061SPeter Avalos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27068e7061SPeter Avalos * SUCH DAMAGE. 28068e7061SPeter Avalos * 29068e7061SPeter Avalos * $FreeBSD: src/crypto/telnet/libtelnet/pk.h,v 1.1.2.3 2002/04/13 10:59:07 markm Exp $ 30068e7061SPeter Avalos * $DragonFly: src/crypto/telnet/libtelnet/pk.h,v 1.2 2003/06/17 04:24:37 dillon Exp $ 31068e7061SPeter Avalos */ 32068e7061SPeter Avalos 33068e7061SPeter Avalos /* header for the des routines that we will use */ 34068e7061SPeter Avalos 35068e7061SPeter Avalos typedef unsigned char byte, DesData[ 8], IdeaData[16]; 36*82ae7067SJohn Marino #define DesKeys DES_key_schedule 37068e7061SPeter Avalos 38068e7061SPeter Avalos #define DES_DECRYPT 0 39068e7061SPeter Avalos #define DES_ENCRYPT 1 40068e7061SPeter Avalos 41068e7061SPeter Avalos /* public key routines */ 42068e7061SPeter Avalos /* functions: 43068e7061SPeter Avalos genkeys(char *public, char *secret) 44068e7061SPeter Avalos common_key(char *secret, char *public, desData *deskey) 45068e7061SPeter Avalos where 46068e7061SPeter Avalos char public[HEXKEYBYTES + 1]; 47068e7061SPeter Avalos char secret[HEXKEYBYTES + 1]; 48068e7061SPeter Avalos */ 49068e7061SPeter Avalos 50068e7061SPeter Avalos #define HEXMODULUS "d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b" 51068e7061SPeter Avalos #define HEXKEYBYTES 48 52068e7061SPeter Avalos #define KEYSIZE 192 53068e7061SPeter Avalos #define KEYBYTES 24 54068e7061SPeter Avalos #define PROOT 3 55068e7061SPeter Avalos 56068e7061SPeter Avalos extern void genkeys(char *public, char *secret); 57068e7061SPeter Avalos extern void common_key(char *secret, char *public, IdeaData *common, 58068e7061SPeter Avalos DesData *deskey); 59068e7061SPeter Avalos extern void pk_encode(char *in, char *out, DesData *deskey); 60068e7061SPeter Avalos extern void pk_decode(char *in, char *out, DesData *deskey); 61