From 92dbd3abbadb6e7ab42c59a4858af56e4f65af50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Tue, 24 Aug 1999 22:05:08 -0700 Subject: [PATCH] patches to avoid errors when compiling without Gmp.mpz Rev: lib/modules/Crypto/dsa.pike:1.7 Rev: lib/modules/Crypto/rsa.pike:1.17 Rev: lib/modules/Languages.pmod/PLIS.pmod:1.8 Rev: lib/modules/Protocols.pmod/LDAP.pmod/client.pike:1.3 Rev: lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod:1.3 Rev: lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike:1.2 Rev: lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod:1.8 Rev: lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod:1.4 Rev: lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod:1.6 Rev: lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod:1.6 Rev: lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod:1.2 Rev: lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod:1.7 Rev: lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod:1.10 Rev: lib/modules/Tools.pmod/X509.pmod:1.7 --- lib/modules/Crypto/dsa.pike | 4 ++++ lib/modules/Crypto/rsa.pike | 6 +++++- lib/modules/Languages.pmod/PLIS.pmod | 18 ++++++++++++++---- .../Protocols.pmod/LDAP.pmod/client.pike | 4 +++- .../LDAP.pmod/ldap_privates.pmod | 6 +++++- .../Protocols.pmod/LDAP.pmod/protocol.pike | 5 ++++- .../Standards.pmod/ASN1.pmod/Decode.pmod | 4 ++++ .../Standards.pmod/ASN1.pmod/Encode.pmod | 4 ++++ lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod | 4 ++++ .../Standards.pmod/PKCS.pmod/Certificate.pmod | 3 +++ lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod | 4 ++++ .../Standards.pmod/PKCS.pmod/Identifiers.pmod | 4 ++++ lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod | 3 +++ lib/modules/Tools.pmod/X509.pmod | 4 ++++ 14 files changed, 65 insertions(+), 8 deletions(-) diff --git a/lib/modules/Crypto/dsa.pike b/lib/modules/Crypto/dsa.pike index a773cae6e2..f0a08a724c 100644 --- a/lib/modules/Crypto/dsa.pike +++ b/lib/modules/Crypto/dsa.pike @@ -3,6 +3,8 @@ * The Digital Signature Algorithm (aka DSS, Digital Signature Standard). */ +#if constant(Gmp.mpz) + #define bignum object(Gmp.mpz) bignum p; /* Modulo */ @@ -264,3 +266,5 @@ int public_key_equal (object dsa) { return p == dsa->p && q == dsa->q && g == dsa->g && y == dsa->y; } + +#endif diff --git a/lib/modules/Crypto/rsa.pike b/lib/modules/Crypto/rsa.pike index 7447b1684a..c796e0f282 100644 --- a/lib/modules/Crypto/rsa.pike +++ b/lib/modules/Crypto/rsa.pike @@ -1,8 +1,10 @@ -/* $Id: rsa.pike,v 1.16 1999/06/08 02:55:17 mast Exp $ +/* $Id: rsa.pike,v 1.17 1999/08/25 05:04:14 hubbe Exp $ * * Follow the PKCS#1 standard for padding and encryption. */ +#if constan(Gmp.mpz) + #define bignum object(Gmp.mpz) #define BIGNUM (Gmp.mpz) @@ -232,3 +234,5 @@ int public_key_equal (object rsa) { return n == rsa->n && e == rsa->e; } + +#endif diff --git a/lib/modules/Languages.pmod/PLIS.pmod b/lib/modules/Languages.pmod/PLIS.pmod index f6c9586bff..005da63320 100644 --- a/lib/modules/Languages.pmod/PLIS.pmod +++ b/lib/modules/Languages.pmod/PLIS.pmod @@ -11,6 +11,14 @@ #define WERROR(x) #endif +#if constant(Gmp.mpz) +#define BIGNUM object +#define NUMBER(X) Gmp.mpz(X) +#else +#define BIGNUM int +#define NUMBER(X) ( (int) (X) ) +#endif + /* Data shared between all Lisp objects */ mapping symbol_table = ([ ]); @@ -482,7 +490,7 @@ class Parser // werror("Scanning number\n"); string s = `+(@ a); buffer = buffer[ strlen(s) ..]; - return Number(Gmp.mpz(s)); + return Number( NUMBER(s) ); } if (a = symbol_re->split(buffer)) { @@ -751,7 +759,8 @@ object f_apply(object arglist, object env, object globals) object f_add(object arglist, object env, object globals) { - object sum = Gmp.mpz(0); + BIGNUM sum = NUMBER(0); + while(arglist != Lempty) { if (!arglist->car->is_number) @@ -764,7 +773,8 @@ object f_add(object arglist, object env, object globals) object f_mult(object arglist, object env, object globals) { - object product = Gmp.mpz(1); + BIGNUM product = NUMBER(1); + while(arglist != Lempty) { if (!arglist->car->is_number) @@ -778,7 +788,7 @@ object f_mult(object arglist, object env, object globals) object f_subtract(object arglist, object env, object globals) { if (arglist == Lempty) - return Number(Gmp.mpz(0)); + return Number( NUMBER(0) ); if (!arglist->car->is_number) return 0; diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/client.pike b/lib/modules/Protocols.pmod/LDAP.pmod/client.pike index 1a5e3403a2..ffd3aa250c 100644 --- a/lib/modules/Protocols.pmod/LDAP.pmod/client.pike +++ b/lib/modules/Protocols.pmod/LDAP.pmod/client.pike @@ -1,6 +1,6 @@ // LDAP client protocol implementation for Pike. // -// $Id: client.pike,v 1.2 1999/08/12 00:44:16 marcus Exp $ +// $Id: client.pike,v 1.3 1999/08/25 05:04:30 hubbe Exp $ // // Honza Petrous, hop@unibase.cz // @@ -58,6 +58,7 @@ // RFC 2307 (LDAP as network information services; draft?) +#if constant(.ldap_privates.ldap_der_decode) #include "ldap_globals.h" @@ -931,3 +932,4 @@ } // modify +#endif diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod b/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod index 9f12c82cde..316629242a 100644 --- a/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod +++ b/lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod @@ -1,6 +1,6 @@ // LDAP client protocol implementation for Pike. // -// $Id: ldap_privates.pmod,v 1.2 1999/08/12 00:44:16 marcus Exp $ +// $Id: ldap_privates.pmod,v 1.3 1999/08/25 05:04:32 hubbe Exp $ // // Honza Petrous, hop@unibase.cz // @@ -32,6 +32,8 @@ // This is very poor defined own ASN.1 objects (not enough time to clean it!) //import Standards.ASN1.Encode; +#if constant(Standards.ASN1.Types.asn1_integer) + class asn1_enumerated { inherit Standards.ASN1.Types.asn1_integer; @@ -255,5 +257,7 @@ object|mapping ldap_der_decode(string data) return der_decode(ADT.struct(data), ldap_type_proc); } +#endif + // ------------- end of ASN.1 API hack ----------------------------- diff --git a/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike b/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike index a96afb56b2..6f32f65fc1 100644 --- a/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike +++ b/lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike @@ -1,6 +1,6 @@ // LDAP client protocol implementation for Pike. // -// $Id: protocol.pike,v 1.1 1999/08/12 00:44:16 marcus fake $ +// $Id: protocol.pike,v 1.2 1999/08/25 05:04:33 hubbe Exp $ // // Honza Petrous, hop@unibase.cz // @@ -19,6 +19,8 @@ // - added core for async operation // +#if constant(Standards.ASN1.Types.asn1_integer) + #include "ldap_globals.h" @@ -468,3 +470,4 @@ DWRITE("protocol.async_timeout: ERROR: connection timeout.\n"); } +#endif diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod index 640ab77c20..4c5df32ae8 100644 --- a/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod +++ b/lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod @@ -13,6 +13,8 @@ * FIXME: Handling of implicit and explicit ASN.1 tagging, as well as * other context dependence, is next to non_existant. */ +#if constant(Gmp.mpz) + import .Types; class primitive @@ -170,3 +172,5 @@ object|mapping simple_der_decode(string data) { return der_decode(ADT.struct(data), universal_types); } + +#endif \ No newline at end of file diff --git a/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod b/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod index 21d25cc1b0..4e5cab40b4 100644 --- a/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod +++ b/lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod @@ -11,6 +11,8 @@ #define WERROR(x) #endif +#if constant(Gmp.mpz) + class asn1_object { constant cls = 0; @@ -264,3 +266,5 @@ class asn1_utc inherit asn1_octet_string; constant tag = 23; } + +#endif \ No newline at end of file diff --git a/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod b/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod index 1029317280..4ece669a28 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/CSR.pmod @@ -7,6 +7,8 @@ import "."; #endif /* __VERSION__ >= 0.6 */ +#if constant(Standards.ASN1.Types.asn1_identifier) + import Standards.ASN1.Types; class CSR_Attributes @@ -37,3 +39,5 @@ object build_csr_dsa(object dsa, object name) object info = asn1_sequence( ({ asn1_integer }) ); } #endif + +#endif \ No newline at end of file diff --git a/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod b/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod index 799259ed92..4c3f4f4f3a 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/Certificate.pmod @@ -128,6 +128,8 @@ Version ::= INTEGER import "."; #endif /* __VERSION__ >= 0.6 */ +#if constant(Standards.ASN1.Types.asn1_sequence) + import Standards.ASN1.Types; import Identifiers; @@ -204,3 +206,4 @@ class Attributes } } +#endif \ No newline at end of file diff --git a/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod index e8fa45e6e7..1a81a63f5d 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/DSA.pmod @@ -7,6 +7,8 @@ /* NOTE: Unlike the functions in RSA.pmod, this function returns * an object rather than a string. */ +#if constant(Gmp.mpz) + import Standards.ASN1.Types; object algorithm_identifier(object|void dsa) @@ -48,3 +50,5 @@ object parse_private_key(string key) return dsa; } + +#endif diff --git a/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod b/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod index d4e3317695..18166ee2f2 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/Identifiers.pmod @@ -62,6 +62,8 @@ 2.5.4.53 - id-at-deltaRevocationList */ +#if constant(Standards.ASN1.Types.asn1_identifier) + import Standards.ASN1.Types; object pkcs_id = asn1_identifier(1, 2, 840, 113549, 1); @@ -204,3 +206,5 @@ object ad_id = pkix_id->append(48); mapping ad_ids = ([ "caIssuers" : ad_id->append(2) ]); + +#endif \ No newline at end of file diff --git a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod index 1bf59abc1c..e37d017b7f 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod @@ -12,6 +12,8 @@ import "."; #endif /* __VERSION__ >= 0.6 */ +#if constant(Standards.ASN1.Decode.simple_der_decode) + import Standards.ASN1.Types; /* Create a DER-coded RSAPublicKey structure */ @@ -87,3 +89,4 @@ object build_rsa_public_key(object rsa) ({ asn1_integer(rsa->n), asn1_integer(rsa->e) }) )->get_der()) }) ); } +#endif \ No newline at end of file diff --git a/lib/modules/Tools.pmod/X509.pmod b/lib/modules/Tools.pmod/X509.pmod index 2b91dec6f5..59e1c37664 100644 --- a/lib/modules/Tools.pmod/X509.pmod +++ b/lib/modules/Tools.pmod/X509.pmod @@ -4,6 +4,8 @@ * */ +#if constant(Standards.ASN1.Types.asn1_sequence) + import Standards.ASN1.Types; import Standards.PKCS; @@ -452,3 +454,5 @@ object verify_certificate(string s, mapping authorities) cert->elements[2]->value) && tbs; } + +#endif \ No newline at end of file -- GitLab