diff options
Diffstat (limited to 'usr/src/lib/libresolv2/common/dnssafe/ahrsaepu.c')
| -rw-r--r-- | usr/src/lib/libresolv2/common/dnssafe/ahrsaepu.c | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/usr/src/lib/libresolv2/common/dnssafe/ahrsaepu.c b/usr/src/lib/libresolv2/common/dnssafe/ahrsaepu.c deleted file mode 100644 index 40a6c8db35..0000000000 --- a/usr/src/lib/libresolv2/common/dnssafe/ahrsaepu.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (c) 1999 by Sun Microsystems, Inc. - * All rights reserved. - */ - -#pragma ident "%Z%%M% %I% %E% SMI" - -/* Copyright (C) RSA Data Security, Inc. created 1990, 1996. This is an - unpublished work protected as such under copyright law. This work - contains proprietary, confidential, and trade secret information of - RSA Data Security, Inc. Use, disclosure or reproduction without the - express written authorization of RSA Data Security, Inc. is - prohibited. - */ - -/* Define this so that the type of the 'this' pointer in the - virtual functions will be correct for this derived class. - */ -struct AH_RSAEncryption; -#define THIS_ENCRYPT_DECRYPT struct AH_RSAEncryption - -#include "port_before.h" -#include "global.h" -#include "bsafe2.h" -#include "bkey.h" -#include "balg.h" -#include "ahrsaepu.h" -#include "port_after.h" - -static int EncodeBlock2 PROTO_LIST - ((AH_RSAEncryptionPublic *, B_Algorithm *, A_SURRENDER_CTX *)); -static int DecodeBlock1 PROTO_LIST - ((AH_RSAEncryptionPublic *, ITEM *, unsigned int)); - -static AH_RSAEncryptionVTable ENCRYPTION_V_TABLE = - {EncodeBlock2, DecodeBlock1}; - -extern struct B_AlgorithmInfoType AIT_RSAPublic; - -AH_RSAEncryptionPublic *AH_RSAEncrypPublicConstructor (handler) -AH_RSAEncryptionPublic *handler; -{ - if (handler == (AH_RSAEncryptionPublic *)NULL_PTR) { - /* This constructor is being used to do a new */ - if ((handler = (AH_RSAEncryptionPublic *)T_malloc (sizeof (*handler))) - == (AH_RSAEncryptionPublic *)NULL_PTR) - return (handler); - } - - /* Construct base class */ - AH_RSAEncryptionConstructor1 (handler, &AIT_RSAPublic); - - handler->vTable = &ENCRYPTION_V_TABLE; - return (handler); -} - -/* block starts out with the input bytes of length inputLen left-justified. - */ -static int EncodeBlock2 (handler, randomAlgorithm, surrenderContext) -AH_RSAEncryptionPublic *handler; -B_Algorithm *randomAlgorithm; -A_SURRENDER_CTX *surrenderContext; -{ - int status; - unsigned char randomByte; - unsigned int padLen, i; - - if ((handler->_inputLen + 3) > handler->z.blockLen) - /* input is too large to make a block 2 */ - return (BE_INPUT_LEN); - - padLen = handler->z.blockLen - (handler->_inputLen + 3); - T_memmove - ((POINTER)(handler->z.block + padLen + 3), (POINTER)handler->z.block, - handler->_inputLen); - - handler->z.block[0] = 0; - handler->z.block[1] = 2; - - /* Pad out with random bytes, making sure that none of the bytes is zero. - */ - for (i = 2; i < (padLen + 2); i++) { - do { - if ((status = B_AlgorithmGenerateRandomBytes - (randomAlgorithm, &randomByte, 1, surrenderContext)) != 0) - return (status); - } while (randomByte == 0); - - handler->z.block[i] = randomByte; - } - - handler->z.block[2 + padLen] = 0; - return (0); -} - -static int DecodeBlock1 (handler, output, block1Len) -AH_RSAEncryptionPublic *handler; -ITEM *output; -unsigned int block1Len; -{ - unsigned int i; - - /* Locate the digestInfo within the PKCS block 1. - */ - if (handler->z.block[0] != 0 || handler->z.block[1] != 1) - return (BE_INPUT_DATA); - - /* Should be able to find the data after the first zero byte following - the 0xff. */ - for (i = 2; i < block1Len && handler->z.block[i] == 0xff; i++); - i++; - - if (i > block1Len || handler->z.block[i - 1] != 0) - /* The data is not zero terminated, or a byte other than 0xff. */ - return (BE_INPUT_DATA); - - output->len = block1Len - i; - output->data = handler->z.block + i; - return (0); -} - |
