This commit was manufactured by cvs2svn to create branch 'BRANCH_engine'.

This commit is contained in:
cvs2svn 2000-07-08 07:56:13 +00:00
commit 9f10f9beeb
4 changed files with 2372 additions and 0 deletions

1726
crypto/objects/obj_mac.h Normal file

File diff suppressed because it is too large Load diff

378
crypto/objects/obj_mac.num Normal file
View file

@ -0,0 +1,378 @@
undef 0
rsadsi 1
pkcs 2
md2 3
md5 4
rc4 5
rsaEncryption 6
md2WithRSAEncryption 7
md5WithRSAEncryption 8
pbeWithMD2AndDES_CBC 9
pbeWithMD5AndDES_CBC 10
X500 11
X509 12
commonName 13
countryName 14
localityName 15
stateOrProvinceName 16
organizationName 17
organizationalUnitName 18
rsa 19
pkcs7 20
pkcs7_data 21
pkcs7_signed 22
pkcs7_enveloped 23
pkcs7_signedAndEnveloped 24
pkcs7_digest 25
pkcs7_encrypted 26
pkcs3 27
dhKeyAgreement 28
des_ecb 29
des_cfb64 30
des_cbc 31
des_ede 32
des_ede3 33
idea_cbc 34
idea_cfb64 35
idea_ecb 36
rc2_cbc 37
rc2_ecb 38
rc2_cfb64 39
rc2_ofb64 40
sha 41
shaWithRSAEncryption 42
des_ede_cbc 43
des_ede3_cbc 44
des_ofb64 45
idea_ofb64 46
pkcs9 47
pkcs9_emailAddress 48
pkcs9_unstructuredName 49
pkcs9_contentType 50
pkcs9_messageDigest 51
pkcs9_signingTime 52
pkcs9_countersignature 53
pkcs9_challengePassword 54
pkcs9_unstructuredAddress 55
pkcs9_extCertAttributes 56
netscape 57
netscape_cert_extension 58
netscape_data_type 59
des_ede_cfb64 60
des_ede3_cfb64 61
des_ede_ofb64 62
des_ede3_ofb64 63
sha1 64
sha1WithRSAEncryption 65
dsaWithSHA 66
dsa_2 67
pbeWithSHA1AndRC2_CBC 68
id_pbkdf2 69
dsaWithSHA1_2 70
netscape_cert_type 71
netscape_base_url 72
netscape_revocation_url 73
netscape_ca_revocation_url 74
netscape_renewal_url 75
netscape_ca_policy_url 76
netscape_ssl_server_name 77
netscape_comment 78
netscape_cert_sequence 79
desx_cbc 80
id_ce 81
subject_key_identifier 82
key_usage 83
private_key_usage_period 84
subject_alt_name 85
issuer_alt_name 86
basic_constraints 87
crl_number 88
certificate_policies 89
authority_key_identifier 90
bf_cbc 91
bf_ecb 92
bf_cfb64 93
bf_ofb64 94
mdc2 95
mdc2WithRSA 96
rc4_40 97
rc2_40_cbc 98
givenName 99
surname 100
initials 101
uniqueIdentifier 102
crl_distribution_points 103
md5WithRSA 104
serialNumber 105
title 106
description 107
cast5_cbc 108
cast5_ecb 109
cast5_cfb64 110
cast5_ofb64 111
pbeWithMD5AndCast5_CBC 112
dsaWithSHA1 113
md5_sha1 114
sha1WithRSA 115
dsa 116
ripemd160 117
ripemd160WithRSA 119
rc5_cbc 120
rc5_ecb 121
rc5_cfb64 122
rc5_ofb64 123
rle_compression 124
zlib_compression 125
ext_key_usage 126
id_pkix 127
id_kp 128
server_auth 129
client_auth 130
code_sign 131
email_protect 132
time_stamp 133
ms_code_ind 134
ms_code_com 135
ms_ctl_sign 136
ms_sgc 137
ms_efs 138
ns_sgc 139
delta_crl 140
crl_reason 141
invalidity_date 142
sxnet 143
pbe_WithSHA1And128BitRC4 144
pbe_WithSHA1And40BitRC4 145
pbe_WithSHA1And3_Key_TripleDES_CBC 146
pbe_WithSHA1And2_Key_TripleDES_CBC 147
pbe_WithSHA1And128BitRC2_CBC 148
pbe_WithSHA1And40BitRC2_CBC 149
keyBag 150
pkcs8ShroudedKeyBag 151
certBag 152
crlBag 153
secretBag 154
safeContentsBag 155
friendlyName 156
localKeyID 157
x509Certificate 158
sdsiCertificate 159
x509Crl 160
pbes2 161
pbmac1 162
hmacWithSHA1 163
id_qt_cps 164
id_qt_unotice 165
rc2_64_cbc 166
SMIMECapabilities 167
pbeWithMD2AndRC2_CBC 168
pbeWithMD5AndRC2_CBC 169
pbeWithSHA1AndDES_CBC 170
ms_ext_req 171
ext_req 172
name 173
dnQualifier 174
id_pe 175
id_ad 176
info_access 177
ad_OCSP 178
ad_ca_issuers 179
OCSP_sign 180
iso 181
member_body 182
ISO_US 183
X9_57 184
X9cm 185
pkcs1 186
pkcs5 187
SMIME 188
id_smime_mod 189
id_smime_ct 190
id_smime_aa 191
id_smime_alg 192
id_smime_cd 193
id_smime_spq 194
id_smime_cti 195
id_smime_mod_cms 196
id_smime_mod_ess 197
id_smime_mod_oid 198
id_smime_mod_msg_v3 199
id_smime_mod_ets_eSignature_88 200
id_smime_mod_ets_eSignature_97 201
id_smime_mod_ets_eSigPolicy_88 202
id_smime_mod_ets_eSigPolicy_97 203
id_smime_ct_receipt 204
id_smime_ct_authData 205
id_smime_ct_publishCert 206
id_smime_ct_TSTInfo 207
id_smime_ct_TDTInfo 208
id_smime_ct_contentInfo 209
id_smime_ct_DVCSRequestData 210
id_smime_ct_DVCSResponseData 211
id_smime_aa_receiptRequest 212
id_smime_aa_securityLabel 213
id_smime_aa_mlExpandHistory 214
id_smime_aa_contentHint 215
id_smime_aa_msgSigDigest 216
id_smime_aa_encapContentType 217
id_smime_aa_contentIdentifier 218
id_smime_aa_macValue 219
id_smime_aa_equivalentLabels 220
id_smime_aa_contentReference 221
id_smime_aa_encrypKeyPref 222
id_smime_aa_signingCertificate 223
id_smime_aa_smimeEncryptCerts 224
id_smime_aa_timeStampToken 225
id_smime_aa_ets_sigPolicyId 226
id_smime_aa_ets_commitmentType 227
id_smime_aa_ets_signerLocation 228
id_smime_aa_ets_signerAttr 229
id_smime_aa_ets_otherSigCert 230
id_smime_aa_ets_contentTimestamp 231
id_smime_aa_ets_CertificateRefs 232
id_smime_aa_ets_RevocationRefs 233
id_smime_aa_ets_certValues 234
id_smime_aa_ets_revocationValues 235
id_smime_aa_ets_escTimeStamp 236
id_smime_aa_ets_certCRLTimestamp 237
id_smime_aa_ets_archiveTimeStamp 238
id_smime_aa_signatureType 239
id_smime_aa_dvcs_dvc 240
id_smime_alg_ESDHwith3DES 241
id_smime_alg_ESDHwithRC2 242
id_smime_alg_3DESwrap 243
id_smime_alg_RC2wrap 244
id_smime_alg_ESDH 245
id_smime_alg_CMS3DESwrap 246
id_smime_alg_CMSRC2wrap 247
id_smime_cd_ldap 248
id_smime_spq_ets_sqt_uri 249
id_smime_spq_ets_sqt_unotice 250
id_smime_cti_ets_proofOfOrigin 251
id_smime_cti_ets_proofOfReceipt 252
id_smime_cti_ets_proofOfDelivery 253
id_smime_cti_ets_proofOfSender 254
id_smime_cti_ets_proofOfApproval 255
id_smime_cti_ets_proofOfCreation 256
md4 257
id_pkix_mod 258
id_qt 259
id_it 260
id_pkip 261
id_alg 262
id_cmc 263
id_on 264
id_pda 265
id_aca 266
id_qcs 267
id_cct 268
id_pkix1_explicit_88 269
id_pkix1_implicit_88 270
id_pkix1_explicit_93 271
id_pkix1_implicit_93 272
id_mod_crmf 273
id_mod_cmc 274
id_mod_kea_profile_88 275
id_mod_kea_profile_93 276
id_mod_cmp 277
id_mod_qualified_cert_88 278
id_mod_qualified_cert_93 279
id_mod_attribute_cert 280
id_mod_timestamp_protocol 281
id_mod_ocsp 282
id_mod_dvcs 283
id_mod_cmp2000 284
biometricInfo 285
qcStatements 286
ac_auditEntity 287
ac_targeting 288
aaControls 289
sbqp_ipAddrBlock 290
sbqp_autonomousSysNum 291
sbqp_routerIdentifier 292
textNotice 293
ipsecEndSystem 294
ipsecTunnel 295
ipsecUser 296
dvcs 297
id_it_caProtEncCert 298
id_it_signKeyPairTypes 299
id_it_encKeyPairTypes 300
id_it_preferredSymmAlg 301
id_it_caKeyUpdateInfo 302
id_it_currentCRL 303
id_it_unsupportedOIDs 304
id_it_subscriptionRequest 305
id_it_subscriptionResponse 306
id_it_keyPairParamReq 307
id_it_keyPairParamRep 308
id_it_revPassphrase 309
id_it_implicitConfirm 310
id_it_confirmWaitTime 311
id_it_origPKIMessage 312
id_regCtrl 313
id_regInfo 314
id_regCtrl_regToken 315
id_regCtrl_authenticator 316
id_regCtrl_pkiPublicationInfo 317
id_regCtrl_pkiArchiveOptions 318
id_regCtrl_oldCertID 319
id_regCtrl_protocolEncrKey 320
id_regInfo_utf8Pairs 321
id_regInfo_certReq 322
id_alg_des40 323
id_alg_noSignature 324
id_alg_dh_sig_hmac_sha1 325
id_alg_dh_pop 326
id_cmc_statusInfo 327
id_cmc_identification 328
id_cmc_identityProof 329
id_cmc_dataReturn 330
id_cmc_transactionId 331
id_cmc_senderNonce 332
id_cmc_recipientNonce 333
id_cmc_addExtensions 334
id_cmc_encryptedPOP 335
id_cmc_decryptedPOP 336
id_cmc_lraPOPWitness 337
id_cmc_getCert 338
id_cmc_getCRL 339
id_cmc_revokeRequest 340
id_cmc_regInfo 341
id_cmc_responseInfo 342
id_cmc_queryPending 343
id_cmc_popLinkRandom 344
id_cmc_popLinkWitness 345
id_cmc_confirmCertAcceptance 346
id_on_personalData 347
id_pda_dateOfBirth 348
id_pda_placeOfBirth 349
id_pda_pseudonym 350
id_pda_gender 351
id_pda_countryOfCitizenship 352
id_pda_countryOfResidence 353
id_aca_authenticationInfo 354
id_aca_accessIdentity 355
id_aca_chargingIdentity 356
id_aca_group 357
id_aca_role 358
id_qcs_pkixQCSyntax_v1 359
id_cct_crs 360
id_cct_PKIData 361
id_cct_PKIResponse 362
ad_timeStamping 363
ad_dvcs 364
id_pkix_OCSP_basic 365
id_pkix_OCSP_Nonce 366
id_pkix_OCSP_CrlID 367
id_pkix_OCSP_acceptableResponses 368
id_pkix_OCSP_noCheck 369
id_pkix_OCSP_archiveCutoff 370
id_pkix_OCSP_serviceLocator 371
id_pkix_OCSP_extendedStatus 372
id_pkix_OCSP_valid 373
id_pkix_OCSP_path 374
id_pkix_OCSP_trustRoot 375
algorithm 376
rsaSignature 377
X500algorithms 378

View file

@ -0,0 +1,44 @@
objects.txt syntax
------------------
To cover all the naming hacks that were previously in objects.h needed some
kind of hacks in objects.txt.
The basic syntax for adding an object is as follows:
1 2 3 4 : shortName : Long Name
If the long name doesn't contain spaces, or no short name
exists, the long name is used as basis for the base name
in C. Otherwise, the short name is used.
The base name (let's call it 'base') will then be used to
create the C macros SN_base, LN_base, NID_base and OBJ_base.
Note that if the base name contains spaces, dashes or periods,
those will be converte to underscore.
Then there are some extra commands:
!Alias foo 1 2 3 4
This juts makes a name foo for an OID. The C macro
OBJ_foo will be created as a result.
!Cname foo
This makes sure that the name foo will be used as base name
in C.
!module foo
1 2 3 4 : shortName : Long Name
!global
The !module command was meant to define a kind of modularity.
What it does is to make sure the module name is prepended
to the base name. !global turns this off. This construction
is not recursive.
Lines starting with # are treated as comments, as well as any line starting
with ! and not matching the commands above.

224
crypto/objects/objects.pl Normal file
View file

@ -0,0 +1,224 @@
#!/usr/local/bin/perl
open (NUMIN,"$ARGV[1]") || die "Can't open number file $ARGV[1]";
$max_nid=0;
$o=0;
while(<NUMIN>)
{
chop;
$o++;
s/#.*$//;
next if /^\s*$/;
($Cname,$mynum) = split;
if (defined($nidn{$mynum}))
{ die "$ARGV[1]:$o:There's already an object with NID ",$mynum," on line ",$order{$mynum},"\n"; }
$nid{$Cname} = $mynum;
$nidn{$mynum} = $Cname;
$order{$mynum} = $o;
$max_nid = $mynum if $mynum > $max_nid;
}
close NUMIN;
open (IN,"$ARGV[0]") || die "Can't open input file $ARGV[0]";
$Cname="";
$o=0;
while (<IN>)
{
chop;
$o++;
if (/^!module\s+(.*)$/)
{
$module = $1."-";
$module =~ s/\./_/g;
$module =~ s/-/_/g;
}
if (/^!global$/)
{ $module = ""; }
if (/^!Cname\s+(.*)$/)
{ $Cname = $1; }
if (/^!Alias\s+(.+?)\s+(.*)$/)
{
$Cname = $module.$1;
$myoid = $2;
$myoid = &process_oid($myoid);
$Cname =~ s/-/_/g;
$ordern{$o} = $Cname;
$order{$Cname} = $o;
$obj{$Cname} = $myoid;
$_ = "";
$Cname = "";
}
s/!.*$//;
s/#.*$//;
next if /^\s*$/;
($myoid,$mysn,$myln) = split ':';
$mysn =~ s/^\s*//;
$mysn =~ s/\s*$//;
$myln =~ s/^\s*//;
$myln =~ s/\s*$//;
$myoid =~ s/^\s*//;
$myoid =~ s/\s*$//;
if ($myoid ne "")
{
$myoid = &process_oid($myoid);
}
if ($Cname eq "" && !($myln =~ / /))
{
$Cname = $myln;
$Cname =~ s/\./_/g;
$Cname =~ s/-/_/g;
if ($Cname ne "" && defined($ln{$module.$Cname}))
{ die "objects.txt:$o:There's already an object with long name ",$ln{$module.$Cname}," on line ",$order{$module.$Cname},"\n"; }
}
if ($Cname eq "")
{
$Cname = $mysn;
$Cname =~ s/-/_/g;
if ($Cname ne "" && defined($sn{$module.$Cname}))
{ die "objects.txt:$o:There's already an object with short name ",$sn{$module.$Cname}," on line ",$order{$module.$Cname},"\n"; }
}
if ($Cname eq "")
{
$Cname = $myln;
$Cname =~ s/-/_/g;
$Cname =~ s/\./_/g;
$Cname =~ s/ /_/g;
if ($Cname ne "" && defined($ln{$module.$Cname}))
{ die "objects.txt:$o:There's already an object with long name ",$ln{$module.$Cname}," on line ",$order{$module.$Cname},"\n"; }
}
$Cname =~ s/\./_/g;
$Cname =~ s/-/_/g;
$Cname = $module.$Cname;
$ordern{$o} = $Cname;
$order{$Cname} = $o;
$sn{$Cname} = $mysn;
$ln{$Cname} = $myln;
$obj{$Cname} = $myoid;
if (!defined($nid{$Cname}))
{
$max_nid++;
$nid{$Cname} = $max_nid;
$nidn{$max_nid} = $Cname;
}
$Cname="";
}
close IN;
open (NUMOUT,">$ARGV[1]") || die "Can't open output file $ARGV[1]";
foreach (sort { $a <=> $b } keys %nidn)
{
print NUMOUT $nidn{$_},"\t\t",$_,"\n";
}
close NUMOUT;
open (OUT,">$ARGV[2]") || die "Can't open output file $ARGV[2]";
print OUT <<'EOF';
/* lib/obj/obj_mac.h */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
* This package is an SSL implementation written
* by Eric Young (eay@cryptsoft.com).
* The implementation was written so as to conform with Netscapes SSL.
*
* This library is free for commercial and non-commercial use as long as
* the following conditions are aheared to. The following conditions
* apply to all code found in this distribution, be it the RC4, RSA,
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
* included with this distribution is covered by the same copyright terms
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
*
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* 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 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 acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 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.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
*/
/* THIS FILE IS GENERATED FROM objects.txt by objects.pl via the
* following command:
* perl objects.pl objects.txt obj_mac.num obj_mac.h
*/
#define SN_undef "UNDEF"
#define LN_undef "undefined"
#define NID_undef 0
#define OBJ_undef 0L
EOF
foreach (sort { $a <=> $b } keys %ordern)
{
$Cname=$ordern{$_};
print OUT "#define SN_",$Cname,"\t\t\"",$sn{$Cname},"\"\n" if $sn{$Cname} ne "";
print OUT "#define LN_",$Cname,"\t\t\"",$ln{$Cname},"\"\n" if $ln{$Cname} ne "";
print OUT "#define NID_",$Cname,"\t\t",$nid{$Cname},"\n" if $nid{$Cname} ne "";
print OUT "#define OBJ_",$Cname,"\t\t",$obj{$Cname},"\n" if $obj{$Cname} ne "";
print OUT "\n";
}
close OUT;
sub process_oid
{
local($oid)=@_;
local(@a,$oid_pref);
@a = split(/\s+/,$myoid);
$pref_oid = "";
$pref_sep = "";
if (!($a[0] =~ /^[0-9]+$/))
{
$a[0] =~ s/-/_/g;
$pref_oid = "OBJ_" . $a[0];
$pref_sep = ",";
shift @a;
}
$oids = join('L,',@a) . "L";
if ($oids ne "L")
{
$oids = $pref_oid . $pref_sep . $oids;
}
else
{
$oids = $pref_oid;
}
return($oids);
}