~sbeattie/ubuntu/oneiric/openssl/lp850608

« back to all changes in this revision

Viewing changes to crypto/dsa/dsa_vrf.c

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2011-05-01 23:51:53 UTC
  • mfrom: (11.1.20 sid)
  • Revision ID: james.westby@ubuntu.com-20110501235153-bjcxitndquaezb68
Tags: 1.0.0d-2ubuntu1
* Resynchronise with Debian (LP: #675566).  Remaining changes:
  - debian/libssl1.0.0.postinst:
    + Display a system restart required notification bubble on libssl1.0.0
      upgrade.
    + Use a different priority for libssl1.0.0/restart-services depending
      on whether a desktop, or server dist-upgrade is being performed.
  - debian/{libssl1.0.0-udeb.dirs, control, rules}: Create
    libssl1.0.0-udeb, for the benefit of wget-udeb (no wget-udeb package
    in Debian).
  - debian/{libcrypto1.0.0-udeb.dirs, libssl1.0.0.dirs, libssl1.0.0.files,
    rules}: Move runtime libraries to /lib, for the benefit of
    wpasupplicant.
  - debian/patches/aesni.patch: Backport Intel AES-NI support, now from
    http://rt.openssl.org/Ticket/Display.html?id=2065 rather than the
    0.9.8 variant.
  - debian/patches/Bsymbolic-functions.patch: Link using
    -Bsymbolic-functions.
  - debian/patches/perlpath-quilt.patch: Don't change perl #! paths under
    .pc.
  - debian/rules:
    + Don't run 'make test' when cross-building.
    + Use host compiler when cross-building.  Patch from Neil Williams.
    + Don't build for processors no longer supported: i486, i586 (on
      i386), v8 (on sparc).
    + Fix Makefile to properly clean up libs/ dirs in clean target.
    + Replace duplicate files in the doc directory with symlinks.
* Update architectures affected by Bsymbolic-functions.patch.
* Drop debian/patches/no-sslv2.patch; Debian now adds the 'no-ssl2'
  configure option, which compiles out SSLv2 support entirely, so this is
  no longer needed.
* Drop openssl-doc in favour of the libssl-doc package introduced by
  Debian.  Add Conflicts/Replaces until the next LTS release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
 
59
59
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
60
60
 
61
 
#include <stdio.h>
62
61
#include "cryptlib.h"
63
 
#include <openssl/bn.h>
64
62
#include <openssl/dsa.h>
65
 
#include <openssl/rand.h>
66
 
#include <openssl/asn1.h>
67
 
#ifdef OPENSSL_FIPS
68
 
#include <openssl/fips.h>
69
 
#endif
70
 
 
71
 
#include <openssl/asn1_mac.h>
72
63
 
73
64
int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
74
65
                  DSA *dsa)
75
66
        {
76
 
#ifdef OPENSSL_FIPS
77
 
        if(FIPS_mode() && !(dsa->flags & DSA_FLAG_NON_FIPS_ALLOW))
78
 
                {
79
 
                DSAerr(DSA_F_DSA_DO_VERIFY, DSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE);
80
 
                return 0;
81
 
                }
82
 
#endif
83
67
        return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
84
68
        }
 
69
 
 
70
/* data has already been hashed (probably with SHA or SHA-1). */
 
71
/* returns
 
72
 *      1: correct signature
 
73
 *      0: incorrect signature
 
74
 *     -1: error
 
75
 */
 
76
int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
 
77
             const unsigned char *sigbuf, int siglen, DSA *dsa)
 
78
        {
 
79
        DSA_SIG *s;
 
80
        int ret=-1;
 
81
 
 
82
        s = DSA_SIG_new();
 
83
        if (s == NULL) return(ret);
 
84
        if (d2i_DSA_SIG(&s,&sigbuf,siglen) == NULL) goto err;
 
85
        ret=DSA_do_verify(dgst,dgst_len,s,dsa);
 
86
err:
 
87
        DSA_SIG_free(s);
 
88
        return(ret);
 
89
        }