]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix Win32 built to work with new crypto code.
authorKern Sibbald <kern@sibbald.com>
Thu, 8 Dec 2005 21:44:51 +0000 (21:44 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 8 Dec 2005 21:44:51 +0000 (21:44 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2654 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/kes-1.39
bacula/src/lib/crypto.c
bacula/src/lib/protos.h
bacula/src/lib/smartall.c
bacula/src/win32/baculafd/baculafd.mak
bacula/src/win32/console/console.mak
bacula/src/win32/filed/chksum.cpp [deleted file]
bacula/src/win32/lib/crypto.cpp [new file with mode: 0644]
bacula/src/win32/wx-console/filelist
bacula/src/win32/wx-console/wx-console.mak

index 1a4bca88f1fcb2a4d8e17889223912dcde5adb4a..f8792fe4b8ccd55137f400887e5d419d56032e38 100644 (file)
@@ -5,6 +5,7 @@ General:
 
 Changes to 1.39.2:
 08Dec05
+- Fix Win32 built to work with new crypto code.
 - Apply patch supplied by user (slightly modified) to fix
   correct detection of holes in block devices and FIFOs. 
   Bug # 506.
index d2a2d4a4d3562d77490315f51cd5fd679da67e13..9860a4b1a9c8c47c99775175d8c45a60cf699b4e 100644 (file)
  *    2.4 - RecipientInfo
  *
  * BaculaCrypto { iso(1) identified-organization(3) usdod(6)
- *                internet(1) private(4) enterprises(1) three-rings(22054)
- *                external(500) bacula(2) published(1) bacula-encryption(1)
- *                asn1-modules(1) bacula-crypto(1) }
+ *               internet(1) private(4) enterprises(1) three-rings(22054)
+ *               external(500) bacula(2) published(1) bacula-encryption(1)
+ *               asn1-modules(1) bacula-crypto(1) }
  *
  * DEFINITIONS AUTOMATIC TAGS ::=
  * BEGIN
  *
  * SignatureData ::= SEQUENCE {
- *    version         Version DEFAULT v0,
+ *    version        Version DEFAULT v0,
  *    signerInfo      SignerInfo }
  *
  * CryptoData ::= SEQUENCE {
- *    version                     Version DEFAULT v0,
+ *    version                    Version DEFAULT v0,
  *    contentEncryptionAlgorithm  ContentEncryptionAlgorithmIdentifier
- *    recipientInfo               RecipientInfo
+ *    recipientInfo              RecipientInfo
  * }
  *
  * SignerInfo ::= SET OF SignerInfo
  * Version ::= INTEGER { v0(0) }
  *
  * SignerInfo ::= SEQUENCE {
- *    version                 Version,
+ *    version                Version,
  *    subjectKeyIdentifier    SubjectKeyIdentifier,
- *    digestAlgorithm         DigestAlgorithmIdentifier,
+ *    digestAlgorithm        DigestAlgorithmIdentifier,
  *    signatureAlgorithm      SignatureAlgorithmIdentifier,
- *    signature               SignatureValue }
+ *    signature              SignatureValue }
  *
  * RecipientInfo ::= SEQUENCE {
- *    version                 Version
+ *    version                Version
  *    subjectKeyIdentifier    SubjectKeyIdentifier
  *    keyEncryptionAlgorithm  KeyEncryptionAlgorithmIdentifier
- *    encryptedKey            EncryptedKey
+ *    encryptedKey           EncryptedKey
  * }
  *
  * SubjectKeyIdentifier ::= OCTET STRING
@@ -270,7 +270,7 @@ typedef struct PEM_CB_Context {
 /*
  * Extract subjectKeyIdentifier from x509 certificate.
  * Returns: On success, an ASN1_OCTET_STRING that must be freed via M_ASN1_OCTET_STRING_free().
- *          NULL on failure.
+ *         NULL on failure.
  */
 static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){
    X509_EXTENSION *ext;
@@ -307,7 +307,7 @@ static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){
 
       /* Decode ASN1 item in data */
       keyid = (ASN1_OCTET_STRING *) ASN1_item_d2i(NULL, &ext_value_data, ext->value->length,
-                                                  ASN1_ITEM_ptr(method->it));
+                                                 ASN1_ITEM_ptr(method->it));
    } else {
       /* Old style ASN1 */
 
@@ -325,7 +325,7 @@ static ASN1_OCTET_STRING *openssl_cert_keyid(X509 *cert){
 /*
  * Create a new keypair object.
  *  Returns: A pointer to a X509 KEYPAIR object on success.
- *           NULL on failure.
+ *          NULL on failure.
  */
 X509_KEYPAIR *crypto_keypair_new (void) {
    X509_KEYPAIR *keypair;
@@ -347,7 +347,7 @@ X509_KEYPAIR *crypto_keypair_new (void) {
 /*
  * Load a public key from a PEM-encoded x509 certificate.
  *  Returns: true on success
- *           false on failure
+ *          false on failure
  */
 int crypto_keypair_load_cert (X509_KEYPAIR *keypair, const char *file)
 {
@@ -405,11 +405,11 @@ static int crypto_pem_callback_dispatch (char *buf, int size, int rwflag, void *
 /*
  * Load a PEM-encoded private key.
  *  Returns: true on success
- *           false on failure
+ *          false on failure
  */
 int crypto_keypair_load_key (X509_KEYPAIR *keypair, const char *file,
-                             CRYPTO_PEM_PASSWD_CB *pem_callback,
-                             const void *pem_userdata)
+                            CRYPTO_PEM_PASSWD_CB *pem_callback,
+                            const void *pem_userdata)
 {
    BIO *bio;
    PEM_CB_CONTEXT ctx;
@@ -459,7 +459,7 @@ void crypto_keypair_free (X509_KEYPAIR *keypair)
 /*
  * Create a new message digest context of the specified type
  *  Returns: A pointer to a DIGEST object on success.
- *           NULL on failure.
+ *          NULL on failure.
  */
 DIGEST *crypto_digest_new (crypto_digest_t type)
 {
@@ -510,9 +510,9 @@ err:
 /*
  * Hash length bytes of data into the provided digest context.
  * Returns: true on success
- *          false on failure
+ *         false on failure
  */
-int crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
+bool crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
    if (EVP_DigestUpdate(&digest->ctx, data, length) == 0) {
       return true;
    } else { 
@@ -525,9 +525,9 @@ int crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
  * in length. The result size can be determined with crypto_digest_size().
  *
  * Returns: true on success
- *          false on failure
+ *         false on failure
  */
-int crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) {
+bool crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) {
    if (!EVP_DigestFinal(&digest->ctx, (unsigned char *) dest, length)) {
       return false;
    } else {
@@ -547,7 +547,7 @@ void crypto_digest_free (DIGEST *digest)
 /*
  * Create a new message signature context.
  *  Returns: A pointer to a SIGNATURE object on success.
- *           NULL on failure.
+ *          NULL on failure.
  */
 SIGNATURE *crypto_sign_new (void)
 {
@@ -576,7 +576,7 @@ SIGNATURE *crypto_sign_new (void)
  * For a given public key, find the associated SignatureInfo record
  * and create a digest context for signature validation
  * Returns: CRYPTO_ERROR_NONE on success, with the newly allocated DIGEST in digest.
- *          A crypto_error_t value on failure.
+ *         A crypto_error_t value on failure.
  */
 crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST **digest)
 {
@@ -589,33 +589,33 @@ crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIG
    for (i = 0; i < sk_SignerInfo_num(signers); i++) {
       si = sk_SignerInfo_value(signers, i);
       if (M_ASN1_OCTET_STRING_cmp(keypair->keyid, si->subjectKeyIdentifier) == 0) {
-         /* Get the digest algorithm and allocate a digest context */
-         switch (OBJ_obj2nid(si->digestAlgorithm)) {
-         case NID_md5:
-            *digest = crypto_digest_new(CRYPTO_DIGEST_MD5);
-            break;
-         case NID_sha1:
-            *digest = crypto_digest_new(CRYPTO_DIGEST_SHA1);
-            break;
+        /* Get the digest algorithm and allocate a digest context */
+        switch (OBJ_obj2nid(si->digestAlgorithm)) {
+        case NID_md5:
+           *digest = crypto_digest_new(CRYPTO_DIGEST_MD5);
+           break;
+        case NID_sha1:
+           *digest = crypto_digest_new(CRYPTO_DIGEST_SHA1);
+           break;
 #ifdef HAVE_SHA2
-         case NID_sha256:
-            *digest = crypto_digest_new(CRYPTO_DIGEST_SHA256);
-            break;
-         case NID_sha512:
-            *digest = crypto_digest_new(CRYPTO_DIGEST_SHA512);
-            break;
+        case NID_sha256:
+           *digest = crypto_digest_new(CRYPTO_DIGEST_SHA256);
+           break;
+        case NID_sha512:
+           *digest = crypto_digest_new(CRYPTO_DIGEST_SHA512);
+           break;
 #endif
-         default:
-            *digest = NULL;
-            return CRYPTO_ERROR_INVALID_DIGEST;
-         }
+        default:
+           *digest = NULL;
+           return CRYPTO_ERROR_INVALID_DIGEST;
+        }
 
          /* Shouldn't happen */
-         if (*digest == NULL) {
-            return CRYPTO_ERROR_INVALID_DIGEST;
-         } else {
-            return CRYPTO_ERROR_NONE;
-         }
+        if (*digest == NULL) {
+           return CRYPTO_ERROR_INVALID_DIGEST;
+        } else {
+           return CRYPTO_ERROR_NONE;
+        }
       }
    }
 
@@ -625,7 +625,7 @@ crypto_error_t crypto_sign_get_digest(SIGNATURE *sig, X509_KEYPAIR *keypair, DIG
 /*
  * For a given signature, public key, and digest, verify the SIGNATURE.
  * Returns: CRYPTO_ERROR_NONE on success.
- *          A crypto_error_t value on failure.
+ *         A crypto_error_t value on failure.
  */
 crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST *digest)
 {
@@ -645,20 +645,20 @@ crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST
    for (i = 0; i < sk_SignerInfo_num(signers); i++) {
       si = sk_SignerInfo_value(signers, i);
       if (M_ASN1_OCTET_STRING_cmp(keypair->keyid, si->subjectKeyIdentifier) == 0) {
-         /* Extract the signature data */
-         sigLen = M_ASN1_STRING_length(si->signature);
-         sigData = M_ASN1_STRING_data(si->signature);
-
-         ok = EVP_VerifyFinal(&digest->ctx, sigData, sigLen, keypair->pubkey);
-         if (ok >= 1) {
-            return CRYPTO_ERROR_NONE;
-         } else if (ok == 0) {
-            return CRYPTO_ERROR_BAD_SIGNATURE;
-         } else if (ok < 0) {
+        /* Extract the signature data */
+        sigLen = M_ASN1_STRING_length(si->signature);
+        sigData = M_ASN1_STRING_data(si->signature);
+
+        ok = EVP_VerifyFinal(&digest->ctx, sigData, sigLen, keypair->pubkey);
+        if (ok >= 1) {
+           return CRYPTO_ERROR_NONE;
+        } else if (ok == 0) {
+           return CRYPTO_ERROR_BAD_SIGNATURE;
+        } else if (ok < 0) {
             /* Shouldn't happen */
             openssl_post_errors(M_ERROR, _("OpenSSL error occured"));
-            return CRYPTO_ERROR_INTERNAL;
-         }
+           return CRYPTO_ERROR_INTERNAL;
+        }
       }
    }
 
@@ -670,7 +670,7 @@ crypto_error_t crypto_sign_verify(SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST
 /*
  * Add a new signer
  *  Returns: true on success
- *           false on failure
+ *          false on failure
  */
 int crypto_sign_add_signer(SIGNATURE *sig, DIGEST *digest, X509_KEYPAIR *keypair)
 {
@@ -758,7 +758,7 @@ err:
  * space for the output.
  *
  * Returns: true on success, stores the encoded data in dest, and the size in length.
- *          false on failure.
+ *         false on failure.
  */
 int crypto_sign_encode(SIGNATURE *sig, void *dest, size_t *length)
 {
@@ -776,7 +776,7 @@ int crypto_sign_encode(SIGNATURE *sig, void *dest, size_t *length)
  * size of sigData.
  *
  * Returns: SIGNATURE instance on success.
- *          NULL on failure.
+ *         NULL on failure.
 
  */
 
@@ -819,7 +819,7 @@ void crypto_sign_free(SIGNATURE *sig)
  * Perform global initialization of OpenSSL
  * This function is not thread safe.
  *  Returns: 0 on success
- *           errno on failure
+ *          errno on failure
  */
 int init_crypto (void)
 {
@@ -849,7 +849,7 @@ int init_crypto (void)
  * All cryptographic operations must be completed before calling this function.
  * This function is not thread safe.
  *  Returns: 0 on success
- *           errno on failure
+ *          errno on failure
  */
 int cleanup_crypto (void)
 {
@@ -925,7 +925,7 @@ DIGEST *crypto_digest_new (crypto_digest_t type)
    return (digest);
 }
 
-int crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
+bool crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
    switch (digest->type) {
    case CRYPTO_DIGEST_MD5:
       /* Doesn't return anything ... */
@@ -945,7 +945,7 @@ int crypto_digest_update (DIGEST *digest, const void *data, size_t length) {
    }
 }
 
-int crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) {
+bool crypto_digest_finalize (DIGEST *digest, void *dest, size_t *length) {
 
    switch (digest->type) {
    case CRYPTO_DIGEST_MD5:
index c03a52bb88690422a55538843bf336ce2a7e61f3..130189729f1bd09621362f64bf8e969c1e7de896 100644 (file)
@@ -117,8 +117,8 @@ uint32_t bcrc32(uint8_t *buf, int len);
 int              init_crypto                 (void);
 int              cleanup_crypto              (void);
 DIGEST *         crypto_digest_new           (crypto_digest_t type);
-int              crypto_digest_update        (DIGEST *digest, const void *data, size_t length);
-int              crypto_digest_finalize      (DIGEST *digest, void *dest, size_t *length);
+bool             crypto_digest_update        (DIGEST *digest, const void *data, size_t length);
+bool             crypto_digest_finalize      (DIGEST *digest, void *dest, size_t *length);
 void             crypto_digest_free          (DIGEST *digest);
 SIGNATURE *      crypto_sign_new             (void);
 crypto_error_t   crypto_sign_get_digest      (SIGNATURE *sig, X509_KEYPAIR *keypair, DIGEST **digest);
index 32f5fac221423e3dad278754fe04edccb570118a..138522d20baf98beb5b1fc751fe29701e4e78ff8 100644 (file)
@@ -1,20 +1,20 @@
 /*
 
-                         S M A R T A L L O C
-                        Smart Memory Allocator
+                        S M A R T A L L O C
+                       Smart Memory Allocator
 
-        Evolved   over   several  years,  starting  with  the  initial
-        SMARTALLOC code for AutoSketch in 1986, guided  by  the  Blind
-        Watchbreaker,  John  Walker.  Isolated in this general-purpose
-        form in  September  of  1989.   Updated  with  be  more  POSIX
-        compliant  and  to  include Web-friendly HTML documentation in
-        October  of  1998  by  the  same  culprit.    For   additional
-        information and the current version visit the Web page:
+       Evolved   over   several  years,  starting  with  the  initial
+       SMARTALLOC code for AutoSketch in 1986, guided  by  the  Blind
+       Watchbreaker,  John  Walker.  Isolated in this general-purpose
+       form in  September  of  1989.   Updated  with  be  more  POSIX
+       compliant  and  to  include Web-friendly HTML documentation in
+       October  of  1998  by  the  same  culprit.    For   additional
+       information and the current version visit the Web page:
 
-                  http://www.fourmilab.ch/smartall/
+                 http://www.fourmilab.ch/smartall/
 
 
-         Version $Id$
+        Version $Id$
 
 */
 
@@ -63,7 +63,7 @@ uint32_t sm_buffers = 0;
 
 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
-extern char my_name[];                /* daemon name */
+extern char my_name[];               /* daemon name */
 
 typedef unsigned short sm_ushort;
 
@@ -75,10 +75,10 @@ typedef unsigned short sm_ushort;
 /*  Memory allocation control structures and storage.  */
 
 struct abufhead {
-   struct b_queue abq;         /* Links on allocated queue */
-   unsigned ablen;             /* Buffer length in bytes */
+   struct b_queue abq;        /* Links on allocated queue */
+   unsigned ablen;            /* Buffer length in bytes */
    const char *abfname;        /* File name pointer */
-   sm_ushort ablineno;         /* Line number of allocation */
+   sm_ushort ablineno;        /* Line number of allocation */
 };
 
 static struct b_queue abqueue = {    /* Allocated buffer queue */
@@ -86,13 +86,13 @@ static struct b_queue abqueue = {    /* Allocated buffer queue */
 };
 
 
-static bool bufimode = false;   /* Buffers not tracked when True */
+static bool bufimode = false;  /* Buffers not tracked when True */
 
 #define HEAD_SIZE BALIGN(sizeof(struct abufhead))
 
 
 /*  SMALLOC  --  Allocate buffer, enqueing on the orphaned buffer
-                 tracking list.  */
+                tracking list.  */
 
 static void *smalloc(const char *fname, int lineno, unsigned int nbytes)
 {
@@ -118,14 +118,14 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes)
       head->abfname = bufimode ? NULL : fname;
       head->ablineno = (sm_ushort) lineno;
       /* Emplace end-clobber detector at end of buffer */
-      buf[nbytes - 1] = (((long) buf) & 0xFF) ^ 0xC5;
+      buf[nbytes - 1] = (uint8_t)((((long) buf) & 0xFF) ^ 0xC5);
       buf += HEAD_SIZE;  /* Increment to user data start */
       if (++sm_buffers > sm_max_buffers) {
-         sm_max_buffers = sm_buffers;
+        sm_max_buffers = sm_buffers;
       }
       sm_bytes += nbytes;
       if (sm_bytes > sm_max_bytes) {
-         sm_max_bytes = sm_bytes;
+        sm_max_bytes = sm_bytes;
       }
       V(mutex);
    } else {
@@ -136,7 +136,7 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes)
 }
 
 /*  SM_NEW_OWNER -- Update the File and line number for a buffer
-                    This is to accomodate mem_pool. */
+                   This is to accomodate mem_pool. */
 
 void sm_new_owner(const char *fname, int lineno, char *buf)
 {
@@ -147,9 +147,9 @@ void sm_new_owner(const char *fname, int lineno, char *buf)
 }
 
 /*  SM_FREE  --  Update free pool availability.  FREE is never called
-                 except  through  this interface or by actuallyfree().
-                 free(x)  is  defined  to  generate  a  call  to  this
-                 routine.  */
+                except  through  this interface or by actuallyfree().
+                free(x)  is  defined  to  generate  a  call  to  this
+                routine.  */
 
 void sm_free(const char *file, int line, void *fp)
 {
@@ -166,8 +166,8 @@ void sm_free(const char *file, int line, void *fp)
 
    P(mutex);
    Dmsg4(1150, "sm_free %d at %x from %s:%d\n",
-         head->ablen, fp,
-         head->abfname, head->ablineno);
+        head->ablen, fp,
+        head->abfname, head->ablineno);
 
    /* The following assertions will catch virtually every release
       of an address which isn't an allocated buffer. */
@@ -180,9 +180,9 @@ void sm_free(const char *file, int line, void *fp)
       Emsg2(M_ABORT, 0, _("qp->qprev->qnext != qp called from %s:%d\n"), file, line);
    }
 
-   /* The following assertion detects storing off the  end  of  the
+   /* The following assertion detects storing off the  end  of the
       allocated  space in the buffer by comparing the end of buffer
-      checksum with the address of the buffer.  */
+      checksum with the address of the buffer. */
 
    if (((unsigned char *)cp)[head->ablen - 1] != ((((long) cp) & 0xFF) ^ 0xC5)) {
       V(mutex);
@@ -194,7 +194,7 @@ void sm_free(const char *file, int line, void *fp)
    qdchain(qp);
    V(mutex);
 
-   /* Now we wipe the contents of  the  just-released  buffer  with
+   /* Now we wipe the contents of  the just-released  buffer  with
       "designer  garbage"  (Duff  Kurland's  phrase) of alternating
       bits.  This is intended to ruin the day for any miscreant who
       attempts to access data through a pointer into storage that's
@@ -206,7 +206,7 @@ void sm_free(const char *file, int line, void *fp)
 }
 
 /*  SM_MALLOC  --  Allocate buffer.  NULL is returned if no memory
-                   was available.  */
+                  was available.  */
 
 void *sm_malloc(const char *fname, int lineno, unsigned int nbytes)
 {
@@ -215,7 +215,7 @@ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes)
    if ((buf = smalloc(fname, lineno, nbytes)) != NULL) {
 
       /* To catch sloppy code that assumes  buffers  obtained  from
-         malloc()  are  zeroed,  we  preset  the buffer contents to
+        malloc()  are  zeroed,  we  preset  the buffer contents to
          "designer garbage" consisting of alternating bits.  */
 
       memset(buf, 0x55, (int) nbytes);
@@ -228,7 +228,7 @@ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes)
 /*  SM_CALLOC  --  Allocate an array and clear it to zero.  */
 
 void *sm_calloc(const char *fname, int lineno,
-                unsigned int nelem, unsigned int elsize)
+               unsigned int nelem, unsigned int elsize)
 {
    void *buf;
 
@@ -240,14 +240,14 @@ void *sm_calloc(const char *fname, int lineno,
    return buf;
 }
 
-/*  SM_REALLOC  --  Adjust the size of a  previously  allocated  buffer.
+/*  SM_REALLOC --  Adjust the size of a  previously  allocated  buffer.
                     Note  that  the trick of "resurrecting" a previously
-                    freed buffer with realloc() is NOT supported by this
-                    function.   Further, because of the need to maintain
-                    our control storage, SM_REALLOC must always allocate
-                    a  new  block  and  copy  the data in the old block.
-                    This may result in programs which make heavy use  of
-                    realloc() running much slower than normally.  */
+                   freed buffer with realloc() is NOT supported by this
+                   function.   Further, because of the need to maintain
+                   our control storage, SM_REALLOC must always allocate
+                   a  new  block  and  copy  the data in the old block.
+                   This may result in programs which make heavy use  of
+                   realloc() running much slower than normally.  */
 
 void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
 {
@@ -260,7 +260,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
       e_msg(fname, lineno, M_ABORT, 0, _("sm_realloc size: %d\n"), size);
    }
 
-   /*  If  the  old  block  pointer  is  NULL, treat realloc() as a
+   /*  If  the old  block  pointer  is  NULL, treat realloc() as a
       malloc().  SVID is silent  on  this,  but  many  C  libraries
       permit this.  */
 
@@ -280,7 +280,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
 
    /* Sizes differ.  Allocate a new buffer of the  requested  size.
       If  we  can't  obtain  such a buffer, act as defined in SVID:
-      return NULL from  realloc()  and  leave  the  buffer  in  PTR
+      return NULL from realloc()  and  leave  the  buffer  in  PTR
       intact.  */
 
    sm_buffers--;
@@ -291,7 +291,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
       /* If the new buffer is larger than the old, fill the balance
          of it with "designer garbage". */
       if (size > osize) {
-         memset(((char *) buf) + osize, 0x55, (int) (size - osize));
+        memset(((char *) buf) + osize, 0x55, (int) (size - osize));
       }
 
       /* All done.  Free and dechain the original buffer. */
@@ -302,20 +302,20 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
    return buf;
 }
 
-/*  ACTUALLYMALLOC  --  Call the system malloc() function to obtain
-                        storage which will eventually be released
-                        by system or library routines not compiled
-                        using SMARTALLOC.  */
+/*  ACTUALLYMALLOC  -- Call the system malloc() function to obtain
+                       storage which will eventually be released
+                       by system or library routines not compiled
+                       using SMARTALLOC.  */
 
 void *actuallymalloc(unsigned int size)
 {
    return malloc(size);
 }
 
-/*  ACTUALLYCALLOC  --  Call the system calloc() function to obtain
-                        storage which will eventually be released
-                        by system or library routines not compiled
-                        using SMARTALLOC.  */
+/*  ACTUALLYCALLOC  -- Call the system calloc() function to obtain
+                       storage which will eventually be released
+                       by system or library routines not compiled
+                       using SMARTALLOC.  */
 
 void *actuallycalloc(unsigned int nelem, unsigned int elsize)
 {
@@ -323,9 +323,9 @@ void *actuallycalloc(unsigned int nelem, unsigned int elsize)
 }
 
 /*  ACTUALLYREALLOC  --  Call the system realloc() function to obtain
-                         storage which will eventually be released
-                         by system or library routines not compiled
-                         using SMARTALLOC.  */
+                        storage which will eventually be released
+                        by system or library routines not compiled
+                        using SMARTALLOC.  */
 
 void *actuallyrealloc(void *ptr, unsigned int size)
 {
@@ -334,7 +334,7 @@ void *actuallyrealloc(void *ptr, unsigned int size)
 }
 
 /*  ACTUALLYFREE  --  Interface to system free() function to release
-                      buffers allocated by low-level routines. */
+                     buffers allocated by low-level routines. */
 
 void actuallyfree(void *cp)
 {
@@ -342,7 +342,7 @@ void actuallyfree(void *cp)
 }
 
 /*  SM_DUMP  --  Print orphaned buffers (and dump them if BUFDUMP is
- *               True).
+ *              True).
  *  N.B. DO NOT USE any Bacula print routines (Dmsg, Jmsg, Emsg, ...)
  *    as they have all been shut down at this point.
  */
@@ -357,45 +357,45 @@ void sm_dump(bool bufdump)
    while (ap != (struct abufhead *) &abqueue) {
 
       if ((ap == NULL) ||
-          (ap->abq.qnext->qprev != (struct b_queue *) ap) ||
-          (ap->abq.qprev->qnext != (struct b_queue *) ap)) {
-         fprintf(stderr, _(
+         (ap->abq.qnext->qprev != (struct b_queue *) ap) ||
+         (ap->abq.qprev->qnext != (struct b_queue *) ap)) {
+        fprintf(stderr, _(
             "\nOrphaned buffers exist.  Dump terminated following\n"
             "  discovery of bad links in chain of orphaned buffers.\n"
             "  Buffer address with bad links: %lx\n"), (long) ap);
-         break;
+        break;
       }
 
       if (ap->abfname != NULL) {
-         unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
-         char errmsg[500];
+        unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
+        char errmsg[500];
 
-         bsnprintf(errmsg, sizeof(errmsg),
+        bsnprintf(errmsg, sizeof(errmsg),
            _("Orphaned buffer:  %6u bytes allocated at line %d of %s %s\n"),
-            memsize, ap->ablineno, my_name, ap->abfname
-         );
+           memsize, ap->ablineno, my_name, ap->abfname
+        );
          fprintf(stderr, "%s", errmsg);
-         if (bufdump) {
-            char buf[20];
-            unsigned llen = 0;
-            char *cp = ((char *) ap) + HEAD_SIZE;
-
-            errmsg[0] = EOS;
-            while (memsize) {
-               if (llen >= 16) {
+        if (bufdump) {
+           char buf[20];
+           unsigned llen = 0;
+           char *cp = ((char *) ap) + HEAD_SIZE;
+
+           errmsg[0] = EOS;
+           while (memsize) {
+              if (llen >= 16) {
                   bstrncat(errmsg, "\n", sizeof(errmsg));
-                  llen = 0;
+                 llen = 0;
                   fprintf(stderr, "%s", errmsg);
-                  errmsg[0] = EOS;
-               }
+                 errmsg[0] = EOS;
+              }
                bsnprintf(buf, sizeof(buf), " %02X",
-                  (*cp++) & 0xFF);
-               bstrncat(errmsg, buf, sizeof(errmsg));
-               llen++;
-               memsize--;
-            }
+                 (*cp++) & 0xFF);
+              bstrncat(errmsg, buf, sizeof(errmsg));
+              llen++;
+              memsize--;
+           }
             fprintf(stderr, "%s\n", errmsg);
-         }
+        }
       }
       ap = (struct abufhead *) ap->abq.qnext;
    }
@@ -406,10 +406,10 @@ void sm_dump(bool bufdump)
 /*  SM_CHECK --  Check the buffers and dump if any damage exists. */
 void sm_check(const char *fname, int lineno, bool bufdump)
 {
-        if (!sm_check_rtn(fname, lineno, bufdump)) {
+       if (!sm_check_rtn(fname, lineno, bufdump)) {
            Emsg2(M_ABORT, 0, _("Damaged buffer found. Called from %s:%d\n"),
-              fname, lineno);
-        }
+             fname, lineno);
+       }
 }
 
 #undef sm_check_rtn
@@ -424,66 +424,66 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
    while (ap != (struct abufhead *) &abqueue) {
       bad = 0;
       if ((ap == NULL) ||
-          (ap->abq.qnext->qprev != (struct b_queue *) ap)) {
-         bad = 0x1;
+         (ap->abq.qnext->qprev != (struct b_queue *) ap)) {
+        bad = 0x1;
       }
       if (ap->abq.qprev->qnext != (struct b_queue *) ap) {
-         bad |= 0x2;
+        bad |= 0x2;
       }
       if (((unsigned char *) ap)[((struct abufhead *) ap)->ablen - 1] !=
-           ((((long) ap) & 0xFF) ^ 0xC5)) {
-         bad |= 0x4;
+          ((((long) ap) & 0xFF) ^ 0xC5)) {
+        bad |= 0x4;
       }
       badbuf |= bad;
       if (bad) {
-         fprintf(stderr,
+        fprintf(stderr,
             _("\nDamaged buffers found at %s:%d\n"), fname, lineno);
 
-         if (bad & 0x1) {
+        if (bad & 0x1) {
             fprintf(stderr, _("  discovery of bad prev link.\n"));
-         }
-         if (bad & 0x2) {
+        }
+        if (bad & 0x2) {
             fprintf(stderr, _("  discovery of bad next link.\n"));
-         }
-         if (bad & 0x4) {
+        }
+        if (bad & 0x4) {
             fprintf(stderr, _("  discovery of data overrun.\n"));
-         }
+        }
 
          fprintf(stderr, _("  Buffer address: %lx\n"), (long) ap);
 
-         if (ap->abfname != NULL) {
-            unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
-            char errmsg[80];
+        if (ap->abfname != NULL) {
+           unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
+           char errmsg[80];
 
-            fprintf(stderr,
+           fprintf(stderr,
               _("Damaged buffer:  %6u bytes allocated at line %d of %s %s\n"),
-               memsize, ap->ablineno, my_name, ap->abfname
-            );
-            if (bufdump) {
-               unsigned llen = 0;
-               char *cp = ((char *) ap) + HEAD_SIZE;
-
-               errmsg[0] = EOS;
-               while (memsize) {
-                  if (llen >= 16) {
+              memsize, ap->ablineno, my_name, ap->abfname
+           );
+           if (bufdump) {
+              unsigned llen = 0;
+              char *cp = ((char *) ap) + HEAD_SIZE;
+
+              errmsg[0] = EOS;
+              while (memsize) {
+                 if (llen >= 16) {
                      strcat(errmsg, "\n");
-                     llen = 0;
+                    llen = 0;
                      fprintf(stderr, "%s", errmsg);
-                     errmsg[0] = EOS;
-                  }
-                  if (*cp < 0x20) {
+                    errmsg[0] = EOS;
+                 }
+                 if (*cp < 0x20) {
                      sprintf(errmsg + strlen(errmsg), " %02X",
-                        (*cp++) & 0xFF);
-                  } else {
+                       (*cp++) & 0xFF);
+                 } else {
                      sprintf(errmsg + strlen(errmsg), " %c ",
-                        (*cp++) & 0xFF);
-                  }
-                  llen++;
-                  memsize--;
-               }
+                       (*cp++) & 0xFF);
+                 }
+                 llen++;
+                 memsize--;
+              }
                fprintf(stderr, "%s\n", errmsg);
-            }
-         }
+           }
+        }
       }
       ap = (struct abufhead *) ap->abq.qnext;
    }
@@ -493,11 +493,11 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
 
 
 /*  SM_STATIC  --  Orphaned buffer detection can be disabled  (for  such
-                   items  as buffers allocated during initialisation) by
-                   calling   sm_static(1).    Normal   orphaned   buffer
-                   detection  can be re-enabled with sm_static(0).  Note
-                   that all the other safeguards still apply to  buffers
-                   allocated  when  sm_static(1)  mode is in effect.  */
+                  items  as buffers allocated during initialisation) by
+                  calling   sm_static(1).    Normal   orphaned   buffer
+                  detection  can be re-enabled with sm_static(0).  Note
+                  that all the other safeguards still apply to  buffers
+                  allocated  when  sm_static(1)  mode is in effect.  */
 
 void sm_static(int mode)
 {
index 7afb9dca6664b98de21862170516e1f72d4c9f79..df2c8f7f8de7092216691992340ea3fd32680227 100644 (file)
@@ -57,11 +57,11 @@ CLEAN :
         -@erase "$(INTDIR)\bsys.obj"
         -@erase "$(INTDIR)\btime.obj"
         -@erase "$(INTDIR)\btimers.obj"
-        -@erase "$(INTDIR)\chksum.obj"
         -@erase "$(INTDIR)\compat.obj"
         -@erase "$(INTDIR)\cram-md5.obj"
         -@erase "$(INTDIR)\crc32.obj"
         -@erase "$(INTDIR)\create_file.obj"
+        -@erase "$(INTDIR)\crypto.obj"
         -@erase "$(INTDIR)\daemon.obj"
         -@erase "$(INTDIR)\dlist.obj"
         -@erase "$(INTDIR)\edit.obj"
@@ -154,11 +154,11 @@ LINK32_OBJS= \
         "$(INTDIR)\bsys.obj" \
         "$(INTDIR)\btime.obj" \
         "$(INTDIR)\btimers.obj" \
-        "$(INTDIR)\chksum.obj" \
         "$(INTDIR)\compat.obj" \
         "$(INTDIR)\cram-md5.obj" \
         "$(INTDIR)\crc32.obj" \
         "$(INTDIR)\create_file.obj" \
+        "$(INTDIR)\crypto.obj" \
         "$(INTDIR)\daemon.obj" \
         "$(INTDIR)\dlist.obj" \
         "$(INTDIR)\edit.obj" \
@@ -271,8 +271,6 @@ CLEAN :
         -@erase "$(INTDIR)\btime.sbr"
         -@erase "$(INTDIR)\btimers.obj"
         -@erase "$(INTDIR)\btimers.sbr"
-        -@erase "$(INTDIR)\chksum.obj"
-        -@erase "$(INTDIR)\chksum.sbr"
         -@erase "$(INTDIR)\compat.obj"
         -@erase "$(INTDIR)\compat.sbr"
         -@erase "$(INTDIR)\cram-md5.obj"
@@ -281,6 +279,8 @@ CLEAN :
         -@erase "$(INTDIR)\crc32.sbr"
         -@erase "$(INTDIR)\create_file.obj"
         -@erase "$(INTDIR)\create_file.sbr"
+        -@erase "$(INTDIR)\crypto.obj"
+        -@erase "$(INTDIR)\crypto.sbr"
         -@erase "$(INTDIR)\daemon.obj"
         -@erase "$(INTDIR)\daemon.sbr"
         -@erase "$(INTDIR)\dlist.obj"
@@ -430,11 +430,11 @@ BSC32_SBRS= \
         "$(INTDIR)\bsys.sbr" \
         "$(INTDIR)\btime.sbr" \
         "$(INTDIR)\btimers.sbr" \
-        "$(INTDIR)\chksum.sbr" \
         "$(INTDIR)\compat.sbr" \
         "$(INTDIR)\cram-md5.sbr" \
         "$(INTDIR)\crc32.sbr" \
         "$(INTDIR)\create_file.sbr" \
+        "$(INTDIR)\crypto.sbr" \
         "$(INTDIR)\daemon.sbr" \
         "$(INTDIR)\dlist.sbr" \
         "$(INTDIR)\edit.sbr" \
@@ -520,11 +520,11 @@ LINK32_OBJS= \
         "$(INTDIR)\bsys.obj" \
         "$(INTDIR)\btime.obj" \
         "$(INTDIR)\btimers.obj" \
-        "$(INTDIR)\chksum.obj" \
         "$(INTDIR)\compat.obj" \
         "$(INTDIR)\cram-md5.obj" \
         "$(INTDIR)\crc32.obj" \
         "$(INTDIR)\create_file.obj" \
+        "$(INTDIR)\crypto.obj" \
         "$(INTDIR)\daemon.obj" \
         "$(INTDIR)\dlist.obj" \
         "$(INTDIR)\edit.obj" \
@@ -944,97 +944,98 @@ SOURCE=..\lib\btimers.cpp
 !ENDIF 
 
 
-SOURCE=..\filed\chksum.cpp
+SOURCE=..\compat\compat.cpp
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
 
 
-"$(INTDIR)\chksum.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\compat.obj" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ELSEIF  "$(CFG)" == "baculafd - Win32 Debug"
 
 
-"$(INTDIR)\chksum.obj" "$(INTDIR)\chksum.sbr" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\compat.obj"  "$(INTDIR)\compat.sbr" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ENDIF 
 
-
-SOURCE=..\compat\compat.cpp
+SOURCE="..\lib\cram-md5.cpp"
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
 
 
-"$(INTDIR)\compat.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\cram-md5.obj" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ELSEIF  "$(CFG)" == "baculafd - Win32 Debug"
 
 
-"$(INTDIR)\compat.obj"  "$(INTDIR)\compat.sbr" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\cram-md5.obj"        "$(INTDIR)\cram-md5.sbr" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ENDIF 
 
-SOURCE="..\lib\cram-md5.cpp"
+SOURCE=..\lib\crc32.cpp
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
 
 
-"$(INTDIR)\cram-md5.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\crc32.obj" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ELSEIF  "$(CFG)" == "baculafd - Win32 Debug"
 
 
-"$(INTDIR)\cram-md5.obj"        "$(INTDIR)\cram-md5.sbr" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\crc32.obj"   "$(INTDIR)\crc32.sbr" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ENDIF 
 
-SOURCE=..\lib\crc32.cpp
+SOURCE=..\findlib\create_file.cpp
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
 
 
-"$(INTDIR)\crc32.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\create_file.obj" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ELSEIF  "$(CFG)" == "baculafd - Win32 Debug"
 
 
-"$(INTDIR)\crc32.obj"   "$(INTDIR)\crc32.sbr" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\create_file.obj"     "$(INTDIR)\create_file.sbr" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ENDIF 
 
-SOURCE=..\findlib\create_file.cpp
+
+SOURCE=..\lib\crypto.cpp
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
 
 
-"$(INTDIR)\create_file.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\crypto.obj" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ELSEIF  "$(CFG)" == "baculafd - Win32 Debug"
 
 
-"$(INTDIR)\create_file.obj"     "$(INTDIR)\create_file.sbr" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\crypto.obj"   "$(INTDIR)\crypto.sbr" : $(SOURCE) "$(INTDIR)"
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
 !ENDIF 
 
+
 SOURCE=..\lib\daemon.cpp
 
 !IF  "$(CFG)" == "baculafd - Win32 Release"
index 7d0c98213b814e75b2754200d1c9681b8a3ab00b..4a117ec1f90b45f5067269d92a0748ba9e8710e2 100644 (file)
@@ -54,6 +54,7 @@ CLEAN :
         -@erase "$(INTDIR)\console_conf.obj"
         -@erase "$(INTDIR)\cram-md5.obj"
         -@erase "$(INTDIR)\crc32.obj"
+        -@erase "$(INTDIR)\crypto.obj"
         -@erase "$(INTDIR)\dlist.obj"
         -@erase "$(INTDIR)\edit.obj"
         -@erase "$(INTDIR)\getopt.obj"
@@ -106,6 +107,7 @@ LINK32_OBJS= \
         "$(INTDIR)\console_conf.obj" \
         "$(INTDIR)\cram-md5.obj" \
         "$(INTDIR)\crc32.obj" \
+        "$(INTDIR)\crypto.obj" \
         "$(INTDIR)\dlist.obj" \
         "$(INTDIR)\edit.obj" \
         "$(INTDIR)\getopt.obj" \
@@ -163,6 +165,7 @@ CLEAN :
         -@erase "$(INTDIR)\console_conf.obj"
         -@erase "$(INTDIR)\cram-md5.obj"
         -@erase "$(INTDIR)\crc32.obj"
+        -@erase "$(INTDIR)\crypto.obj"
         -@erase "$(INTDIR)\dlist.obj"
         -@erase "$(INTDIR)\edit.obj"
         -@erase "$(INTDIR)\getopt.obj"
@@ -216,6 +219,7 @@ LINK32_OBJS= \
         "$(INTDIR)\console_conf.obj" \
         "$(INTDIR)\cram-md5.obj" \
         "$(INTDIR)\crc32.obj" \
+        "$(INTDIR)\crypto.obj" \
         "$(INTDIR)\dlist.obj" \
         "$(INTDIR)\edit.obj" \
         "$(INTDIR)\getopt.obj" \
@@ -366,6 +370,13 @@ SOURCE=..\lib\crc32.cpp
         $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\lib\crypto.cpp
+
+"$(INTDIR)\crypto.obj" : $(SOURCE) "$(INTDIR)"
+        $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+
 SOURCE=..\lib\dlist.cpp
 
 "$(INTDIR)\dlist.obj" : $(SOURCE) "$(INTDIR)"
diff --git a/bacula/src/win32/filed/chksum.cpp b/bacula/src/win32/filed/chksum.cpp
deleted file mode 100644 (file)
index de3fd34..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../filed/chksum.c"
diff --git a/bacula/src/win32/lib/crypto.cpp b/bacula/src/win32/lib/crypto.cpp
new file mode 100644 (file)
index 0000000..961ae75
--- /dev/null
@@ -0,0 +1 @@
+#include "../../lib/crypto.c"
index f97c202452e1ba1bea771cc2498e2a351a96e61d..9f044978aea680eac33de4922c84c9a8c6b6b5ad 100644 (file)
@@ -13,6 +13,7 @@
 ..\lib\btime
 ..\lib\cram-md5
 ..\lib\crc32
+..\lib\crypto
 ..\lib\daemon
 ..\lib\dlist
 ..\lib\edit
index f5c116914e06c415adfb4132b75996ef1688e982..863dd927c8b45f33a9dcddc4923cc512977db0b4 100644 (file)
@@ -55,6 +55,7 @@ CLEAN :
        -@erase "$(INTDIR)\btime.obj"
        -@erase "$(INTDIR)\cram-md5.obj"
        -@erase "$(INTDIR)\crc32.obj"
+       -@erase "$(INTDIR)\crypto.obj"
        -@erase "$(INTDIR)\daemon.obj"
        -@erase "$(INTDIR)\dlist.obj"
        -@erase "$(INTDIR)\edit.obj"
@@ -132,6 +133,7 @@ LINK32_OBJS= \
        "$(INTDIR)\btime.obj" \
        "$(INTDIR)\cram-md5.obj" \
        "$(INTDIR)\crc32.obj" \
+       "$(INTDIR)\crypto.obj" \
        "$(INTDIR)\daemon.obj" \
        "$(INTDIR)\dlist.obj" \
        "$(INTDIR)\edit.obj" \
@@ -225,6 +227,8 @@ CLEAN :
        -@erase "$(INTDIR)\cram-md5.sbr"
        -@erase "$(INTDIR)\crc32.obj
        -@erase "$(INTDIR)\crc32.sbr"
+       -@erase "$(INTDIR)\crypto.obj
+       -@erase "$(INTDIR)\crypto.sbr"
        -@erase "$(INTDIR)\daemon.obj
        -@erase "$(INTDIR)\daemon.sbr"
        -@erase "$(INTDIR)\dlist.obj
@@ -342,6 +346,7 @@ BSC32_SBRS= \
        "$(INTDIR)\btime.sbr" \
        "$(INTDIR)\cram-md5.sbr" \
        "$(INTDIR)\crc32.sbr" \
+       "$(INTDIR)\crypto.sbr" \
        "$(INTDIR)\daemon.sbr" \
        "$(INTDIR)\dlist.sbr" \
        "$(INTDIR)\edit.sbr" \
@@ -414,6 +419,7 @@ LINK32_OBJS= \
        "$(INTDIR)\btime.obj" \
        "$(INTDIR)\cram-md5.obj" \
        "$(INTDIR)\crc32.obj" \
+       "$(INTDIR)\crypto.obj" \
        "$(INTDIR)\daemon.obj" \
        "$(INTDIR)\dlist.obj" \
        "$(INTDIR)\edit.obj" \
@@ -797,6 +803,25 @@ SOURCE=..\lib\crc32.cpp
 !ENDIF 
 
 
+FILENAME=crypto
+SOURCE=..\lib\crypto.cpp
+!IF  "$(CFG)" == "wx-console - Win32 Release"
+
+
+"$(INTDIR)\$(FILENAME).obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "wx-console - Win32 Debug"
+
+
+"$(INTDIR)\$(FILENAME).obj"    "$(INTDIR)\$(FILENAME).sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+
 FILENAME=daemon
 SOURCE=..\lib\daemon.cpp
 !IF  "$(CFG)" == "wx-console - Win32 Release"