Skip to content
Snippets Groups Projects
Forked from Nettle / nettle
3884 commits behind the upstream repository.
Niels Möller's avatar
Niels Möller authored
markers in the input strem.
(struct sexp_input): Deleted LEVEL attribute. Deleted all usage of
it.
(sexp_get_raw_char): Use INPUT->c and INPUT->ctype to store
results. Deleted OUT argument.
(sexp_get_char): Likewise. Also removed the
INPUT->coding->decode_final call, for symmetry.
(sexp_input_end_coding): Call INPUT->coding->decode_final.
(sexp_next_char): New function.
(sexp_push_char): New function.
(sexp_get_token_char): Deleted function.
(sexp_get_quoted_char): Simplified. Deleted output argument.
(sexp_get_quoted_string): Simplified.
(sexp_get_base64_string): Likewise.
(sexp_get_token_string): Likewise.
(sexp_get_string_length): Skip the character that terminates the
string.
(sexp_get_token): Cleared upp calling conventions. Always consume
the final character of the token.
(sexp_convert_list): Take responsibility for converting the start
and end of the list.
(sexp_convert_file): Call sexp_get_char first, to get the token
reading started.
(sexp_convert_item): Cleared up calling conventions. Should be
called with INPUT->token being the first token of the expression,
and returns with INPUT->token being the final token of the
expression. Return value changed to void..

Rev: src/nettle/examples/sexp-conv.c:1.12
21703d22
History
What is Nettle? A quote from the introduction in the Nettle Manual:

  Nettle is a cryptographic library that is designed to fit easily in more
  or less any context: In crypto toolkits for object-oriented languages
  (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in
  kernel space. In most contexts, you need more than the basic
  cryptographic algorithms, you also need some way to keep track of available
  algorithms, their properties and variants. You often have some algorithm
  selection process, often dictated by a protocol you want to implement.
  
  And as the requirements of applications differ in subtle and not so
  subtle ways, an API that fits one application well can be a pain to use
  in a different context. And that is why there are so many different
  cryptographic libraries around.
  
  Nettle tries to avoid this problem by doing one thing, the low-level
  crypto stuff, and providing a @emph{simple} but general interface to it.
  In particular, Nettle doesn't do algorithm selection. It doesn't do
  memory allocation. It doesn't do any I/O.
  
  The idea is that one can build several application and context specific
  interfaces on top of Nettle, and share the code, testcases, benchmarks,
  documentation, etc. For this first version, the only application using
  Nettle is LSH, and it uses an object-oriented abstraction on top of the
  library. 

Nettle is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation. See the file COPYING for details. Most, but not
all, of Nettle can also be used under the terms of the GNU Lesser
General Public License; please read the Copyright section of the
manual if you want to exercise this option.

Build nettle with the usual ./configure && make && make check && make
install. Read the manual. Mail me if you have any questions or
suggestions.

You can also build Nettle from cvs, using

  cvs -d :pserver:anonymous@cvs.lysator.liu.se:/cvsroot/lsh login
  [ empty password ]
  cvs -d :pserver:anonymous@cvs.lysator.liu.se:/cvsroot/lsh co nettle

If you get it from cvs, you need to build it with

  ./.bootstrap && ./configure && make && make check

You may want to subscribe to the nettle-bugs mailing list. See
<URL: http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs>.


Happy hacking,
/Niels Möller <nisse@lysator.liu.se>