Select Git revision
_Image_XPM.pmod
-
Martin Nilsson authored
Rev: bin/fake_dynamic_load.pike:1.6 Rev: bin/httpd.pike:1.5 Rev: bin/install.pike:1.109 Rev: bin/mkpeep.pike:1.30 Rev: bin/tarfilter.pike:1.4 Rev: bin/test_pike.pike:1.80 Rev: bin/unbug:1.10 Rev: lib/modules/ADT.pmod/struct.pike:1.11 Rev: lib/modules/Audio.pmod/Format.pmod/module.pmod:1.6 Rev: lib/modules/Calendar.pmod/Events.pmod:1.13 Rev: lib/modules/Calendar.pmod/Time.pmod:1.22 Rev: lib/modules/Calendar.pmod/Timezone.pmod:1.27 Rev: lib/modules/Calendar.pmod/YMD.pmod:1.48 Rev: lib/modules/Calendar.pmod/mkrules.pike:1.7 Rev: lib/modules/Colors.pmod:1.13 Rev: lib/modules/Crypto/_rsa.pike:1.7 Rev: lib/modules/Crypto/des3.pike:1.8 Rev: lib/modules/Crypto/dsa.pike:1.12 Rev: lib/modules/Crypto/hmac.pike:1.9 Rev: lib/modules/Crypto/randomness.pmod:1.24 Rev: lib/modules/Crypto/rsa.pike:1.32 Rev: lib/modules/Filesystem.pmod/System.pike:1.14 Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.19 Rev: lib/modules/GTKSupport.pmod/MenuFactory.pmod:1.8 Rev: lib/modules/Getopt.pmod:1.26 Rev: lib/modules/Languages.pmod/PLIS.pmod:1.15 Rev: lib/modules/Locale.pmod/module.pmod:1.16 Rev: lib/modules/MIME.pmod/module.pmod:1.6 Rev: lib/modules/Parser.pmod/C.pmod:1.38 Rev: lib/modules/Parser.pmod/XML.pmod/DOM.pmod:1.10 Rev: lib/modules/Parser.pmod/XML.pmod/NSTree.pmod:1.7 Rev: lib/modules/Parser.pmod/XML.pmod/Tree.pmod:1.25 Rev: lib/modules/Process.pmod:1.38 Rev: lib/modules/Protocols.pmod/DNS.pmod:1.71 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1.48 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike:1.15 Rev: lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike:1.26 Rev: lib/modules/Protocols.pmod/IMAP.pmod/server.pike:1.15 Rev: lib/modules/Protocols.pmod/IMAP.pmod/types.pmod:1.28 Rev: lib/modules/Protocols.pmod/IRC.pmod/Error.pmod:1.4 Rev: lib/modules/Protocols.pmod/IRC.pmod/Raw.pike:1.7 Rev: lib/modules/Protocols.pmod/Ident.pmod:1.10 Rev: lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike:1.9 Rev: lib/modules/Protocols.pmod/Line.pmod:1.21 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod:1.7 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike:1.14 Rev: lib/modules/Protocols.pmod/NNTP.pmod:1.11 Rev: lib/modules/Protocols.pmod/TELNET.pmod:1.19 Rev: lib/modules/Protocols.pmod/X.pmod/KeySyms.pmod:1.3 Rev: lib/modules/Protocols.pmod/X.pmod/Requests.pmod:1.32 Rev: lib/modules/Protocols.pmod/X.pmod/Xlib.pmod:1.48 Rev: lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod:1.18 Rev: lib/modules/Remote.pmod/connection.pike:1.25 Rev: lib/modules/SSL.pmod/cipher.pike:1.21 Rev: lib/modules/SSL.pmod/connection.pike:1.24 Rev: lib/modules/SSL.pmod/handshake.pike:1.30 Rev: lib/modules/SSL.pmod/https.pike:1.13 Rev: lib/modules/SSL.pmod/packet.pike:1.12 Rev: lib/modules/SSL.pmod/session.pike:1.21 Rev: lib/modules/SSL.pmod/sslfile.pike:1.51 Rev: lib/modules/SSL.pmod/state.pike:1.15 Rev: lib/modules/Sql.pmod/postgres.pike:1.19 Rev: lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod:1.9 Rev: lib/modules/Standards.pmod/ASN1.pmod/Types.pmod:1.21 Rev: lib/modules/Standards.pmod/EXIF.pmod:1.16 Rev: lib/modules/Standards.pmod/ID3.pmod:1.8 Rev: lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod:1.7 Rev: lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod:1.7 Rev: lib/modules/Stdio.pmod/Readline.pike:1.44 Rev: lib/modules/Stdio.pmod/Terminfo.pmod:1.14 Rev: lib/modules/Stdio.pmod/module.pmod:1.163 Rev: lib/modules/String.pmod/Elite.pmod:1.3 Rev: lib/modules/String.pmod/module.pmod:1.10 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/CExtractor.pmod:1.25 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/DocParser.pmod:1.54 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/MirarDocParser.pike:1.19 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeExtractor.pmod:1.30 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike:1.32 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/ProcessXML.pmod:1.51 Rev: lib/modules/Tools.pmod/PEM.pmod:1.9 Rev: lib/modules/Tools.pmod/Shoot.pmod/module.pmod:1.6 Rev: lib/modules/Tools.pmod/Standalone.pmod/assemble_autodoc.pike:1.25 Rev: lib/modules/Tools.pmod/X509.pmod:1.17 Rev: lib/modules/Tools.pmod/_PEM.pmod:1.5 Rev: lib/modules/Tools.pmod/sed.pmod:1.5 Rev: lib/modules/Web.pmod/Crawler.pmod:1.14 Rev: lib/modules/_Image.pmod/Fonts.pmod:1.10 Rev: lib/modules/_Image.pmod/module.pmod:1.32 Rev: lib/modules/_Image_XCF.pmod:1.20 Rev: lib/modules/_Image_XPM.pmod:1.13 Rev: src/modules/Gz/flushtest.pike:1.3 Rev: src/modules/HTTPLoop/test.pike:1.3 Rev: src/modules/HTTPLoop/wwwserver.pike:1.5 Rev: src/modules/_Charset/module.pmod.in:1.28 Rev: src/modules/files/socktest.pike:1.21 Rev: src/post_modules/GTK/new_build_pgtk.pike:1.22 Rev: src/post_modules/GTK/output/doc-pikeref.pike:1.13 Rev: src/post_modules/GTK/output/few.pike:1.2 Rev: src/post_modules/GTK/output/split.pike:1.11 Rev: src/post_modules/Unicode/make_canonicals.pike:1.2 Rev: src/post_modules/Unicode/make_decompose.pike:1.4 Rev: src/post_modules/Unicode/make_wordbits.pike:1.2 Rev: src/post_modules/Unicode/test.pike:1.6
Martin Nilsson authoredRev: bin/fake_dynamic_load.pike:1.6 Rev: bin/httpd.pike:1.5 Rev: bin/install.pike:1.109 Rev: bin/mkpeep.pike:1.30 Rev: bin/tarfilter.pike:1.4 Rev: bin/test_pike.pike:1.80 Rev: bin/unbug:1.10 Rev: lib/modules/ADT.pmod/struct.pike:1.11 Rev: lib/modules/Audio.pmod/Format.pmod/module.pmod:1.6 Rev: lib/modules/Calendar.pmod/Events.pmod:1.13 Rev: lib/modules/Calendar.pmod/Time.pmod:1.22 Rev: lib/modules/Calendar.pmod/Timezone.pmod:1.27 Rev: lib/modules/Calendar.pmod/YMD.pmod:1.48 Rev: lib/modules/Calendar.pmod/mkrules.pike:1.7 Rev: lib/modules/Colors.pmod:1.13 Rev: lib/modules/Crypto/_rsa.pike:1.7 Rev: lib/modules/Crypto/des3.pike:1.8 Rev: lib/modules/Crypto/dsa.pike:1.12 Rev: lib/modules/Crypto/hmac.pike:1.9 Rev: lib/modules/Crypto/randomness.pmod:1.24 Rev: lib/modules/Crypto/rsa.pike:1.32 Rev: lib/modules/Filesystem.pmod/System.pike:1.14 Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.19 Rev: lib/modules/GTKSupport.pmod/MenuFactory.pmod:1.8 Rev: lib/modules/Getopt.pmod:1.26 Rev: lib/modules/Languages.pmod/PLIS.pmod:1.15 Rev: lib/modules/Locale.pmod/module.pmod:1.16 Rev: lib/modules/MIME.pmod/module.pmod:1.6 Rev: lib/modules/Parser.pmod/C.pmod:1.38 Rev: lib/modules/Parser.pmod/XML.pmod/DOM.pmod:1.10 Rev: lib/modules/Parser.pmod/XML.pmod/NSTree.pmod:1.7 Rev: lib/modules/Parser.pmod/XML.pmod/Tree.pmod:1.25 Rev: lib/modules/Process.pmod:1.38 Rev: lib/modules/Protocols.pmod/DNS.pmod:1.71 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1.48 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike:1.15 Rev: lib/modules/Protocols.pmod/IMAP.pmod/parse_line.pike:1.26 Rev: lib/modules/Protocols.pmod/IMAP.pmod/server.pike:1.15 Rev: lib/modules/Protocols.pmod/IMAP.pmod/types.pmod:1.28 Rev: lib/modules/Protocols.pmod/IRC.pmod/Error.pmod:1.4 Rev: lib/modules/Protocols.pmod/IRC.pmod/Raw.pike:1.7 Rev: lib/modules/Protocols.pmod/Ident.pmod:1.10 Rev: lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike:1.9 Rev: lib/modules/Protocols.pmod/Line.pmod:1.21 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Helper.pmod:1.7 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Raw.pike:1.14 Rev: lib/modules/Protocols.pmod/NNTP.pmod:1.11 Rev: lib/modules/Protocols.pmod/TELNET.pmod:1.19 Rev: lib/modules/Protocols.pmod/X.pmod/KeySyms.pmod:1.3 Rev: lib/modules/Protocols.pmod/X.pmod/Requests.pmod:1.32 Rev: lib/modules/Protocols.pmod/X.pmod/Xlib.pmod:1.48 Rev: lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod:1.18 Rev: lib/modules/Remote.pmod/connection.pike:1.25 Rev: lib/modules/SSL.pmod/cipher.pike:1.21 Rev: lib/modules/SSL.pmod/connection.pike:1.24 Rev: lib/modules/SSL.pmod/handshake.pike:1.30 Rev: lib/modules/SSL.pmod/https.pike:1.13 Rev: lib/modules/SSL.pmod/packet.pike:1.12 Rev: lib/modules/SSL.pmod/session.pike:1.21 Rev: lib/modules/SSL.pmod/sslfile.pike:1.51 Rev: lib/modules/SSL.pmod/state.pike:1.15 Rev: lib/modules/Sql.pmod/postgres.pike:1.19 Rev: lib/modules/Standards.pmod/ASN1.pmod/Encode.pmod:1.9 Rev: lib/modules/Standards.pmod/ASN1.pmod/Types.pmod:1.21 Rev: lib/modules/Standards.pmod/EXIF.pmod:1.16 Rev: lib/modules/Standards.pmod/ID3.pmod:1.8 Rev: lib/modules/Standards.pmod/PKCS.pmod/PFX.pmod:1.7 Rev: lib/modules/Standards.pmod/PKCS.pmod/Signature.pmod:1.7 Rev: lib/modules/Stdio.pmod/Readline.pike:1.44 Rev: lib/modules/Stdio.pmod/Terminfo.pmod:1.14 Rev: lib/modules/Stdio.pmod/module.pmod:1.163 Rev: lib/modules/String.pmod/Elite.pmod:1.3 Rev: lib/modules/String.pmod/module.pmod:1.10 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/CExtractor.pmod:1.25 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/DocParser.pmod:1.54 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/MirarDocParser.pike:1.19 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeExtractor.pmod:1.30 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/PikeParser.pike:1.32 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/ProcessXML.pmod:1.51 Rev: lib/modules/Tools.pmod/PEM.pmod:1.9 Rev: lib/modules/Tools.pmod/Shoot.pmod/module.pmod:1.6 Rev: lib/modules/Tools.pmod/Standalone.pmod/assemble_autodoc.pike:1.25 Rev: lib/modules/Tools.pmod/X509.pmod:1.17 Rev: lib/modules/Tools.pmod/_PEM.pmod:1.5 Rev: lib/modules/Tools.pmod/sed.pmod:1.5 Rev: lib/modules/Web.pmod/Crawler.pmod:1.14 Rev: lib/modules/_Image.pmod/Fonts.pmod:1.10 Rev: lib/modules/_Image.pmod/module.pmod:1.32 Rev: lib/modules/_Image_XCF.pmod:1.20 Rev: lib/modules/_Image_XPM.pmod:1.13 Rev: src/modules/Gz/flushtest.pike:1.3 Rev: src/modules/HTTPLoop/test.pike:1.3 Rev: src/modules/HTTPLoop/wwwserver.pike:1.5 Rev: src/modules/_Charset/module.pmod.in:1.28 Rev: src/modules/files/socktest.pike:1.21 Rev: src/post_modules/GTK/new_build_pgtk.pike:1.22 Rev: src/post_modules/GTK/output/doc-pikeref.pike:1.13 Rev: src/post_modules/GTK/output/few.pike:1.2 Rev: src/post_modules/GTK/output/split.pike:1.11 Rev: src/post_modules/Unicode/make_canonicals.pike:1.2 Rev: src/post_modules/Unicode/make_decompose.pike:1.4 Rev: src/post_modules/Unicode/make_wordbits.pike:1.2 Rev: src/post_modules/Unicode/test.pike:1.6
dsa.h 3.88 KiB
/* dsa.h
*
* The DSA publickey algorithm.
*/
/* nettle, low-level cryptographics library
*
* Copyright (C) 2002 Niels Mller
*
* The nettle library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* The nettle library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the nettle library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
#ifndef NETTLE_DSA_H_INCLUDED
#define NETTLE_DSA_H_INCLUDED
#include <inttypes.h>
#include <gmp.h>
#include "sha.h"
/* For nettle_random_func */
#include "nettle-meta.h"
#define DSA_MIN_P_BITS 512
#define DSA_Q_OCTETS 20
#define DSA_Q_BITS 160
struct dsa_public_key
{
/* Modulo */
mpz_t p;
/* Group order */
mpz_t q;
/* Generator */
mpz_t g;
/* Public value */
mpz_t y;
};
struct dsa_private_key
{
/* Unlike an rsa public key, private key operations will need both
* the private and the public information. */
mpz_t x;
};
struct dsa_signature
{
mpz_t r;
mpz_t s;
};
/* Signing a message works as follows:
*
* Store the private key in a dsa_private_key struct.
*
* Initialize a hashing context, by callling
* sha1_init
*
* Hash the message by calling
* sha1_update
*
* Create the signature by calling
* dsa_sign
*
* The signature is represented as two mpz_t bignums. This call also
* resets the hashing context.
*
* When done with the key and signature, don't forget to call
* mpz_clear.
*/
/* Calls mpz_init to initialize bignum storage. */
void
dsa_public_key_init(struct dsa_public_key *key);
/* Calls mpz_clear to deallocate bignum storage. */
void
dsa_public_key_clear(struct dsa_public_key *key);
/* Calls mpz_init to initialize bignum storage. */
void
dsa_private_key_init(struct dsa_private_key *key);
/* Calls mpz_clear to deallocate bignum storage. */
void
dsa_private_key_clear(struct dsa_private_key *key);
/* Calls mpz_init to initialize bignum storage. */
void
dsa_signature_init(struct dsa_signature *signature);
/* Calls mpz_clear to deallocate bignum storage. */
void
dsa_signature_clear(struct dsa_signature *signature);
void
_dsa_hash(mpz_t x, struct sha1_ctx *hash);
void
dsa_sign(const struct dsa_public_key *pub,
const struct dsa_private_key *key,
void *random_ctx, nettle_random_func random,
struct sha1_ctx *hash,
struct dsa_signature *signature);
int
dsa_verify(const struct dsa_public_key *key,
struct sha1_ctx *hash,
const struct dsa_signature *signature);
/* Key generation */
int
dsa_generate_keypair(struct dsa_public_key *pub,
struct dsa_private_key *key,
void *random_ctx, nettle_random_func random,
void *progress_ctx, nettle_progress_func progress,
/* Size of key, in bits.
* Use size = 512 + 64 * l for the official
* NIS key sizes. */
unsigned bits);
struct sexp_iterator;
int
dsa_keypair_from_sexp_alist(struct dsa_public_key *pub,
struct dsa_private_key *priv,
unsigned limit,
struct sexp_iterator *i);
/* If PRIV is NULL, expect a public-key expression. If PUB is NULL,
* expect a private key expression and ignore the parts not needed for
* the public key. */
/* Keys must be initialized before calling this function, as usual. */
int
dsa_keypair_from_sexp(struct dsa_public_key *pub,
struct dsa_private_key *priv,
unsigned limit,
unsigned length, const uint8_t *expr);
#endif /* NETTLE_DSA_H_INCLUDED */