- swi-prolog
- library
- error.pl -- Error generating support
 - apply.pl -- Apply predicates on a list
 - lists.pl -- List Manipulation
 - pairs.pl -- Operations on key-value lists
 - debug.pl -- Print debug messages and test assertions
 - broadcast.pl -- Event service
 - socket.pl -- Network socket (TCP and UDP) library
 - shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
 - option.pl -- Option list processing
 - uid.pl -- User and group management on Unix systems
 - unix.pl -- Unix specific operations
 - syslog.pl -- Unix syslog interface
 - thread_pool.pl -- Resource bounded thread management
 - rbtrees.pl -- Red black trees
 - gensym.pl -- Generate unique symbols
 - readutil.pl -- Read utilities
 - url.pl -- Analysing and constructing URL
 - utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
 - uri.pl -- Process URIs
 - memfile.pl
 - settings.pl -- Setting management
 - arithmetic.pl -- Extensible arithmetic
 - sgml.pl -- SGML, XML and HTML parser
 - iostream.pl -- Utilities to deal with streams
 - dialect.pl -- Support multiple Prolog dialects
 - quasi_quotations.pl -- Define Quasi Quotation syntax
 - pure_input.pl -- Pure Input from files and streams
 - time.pl -- Time and alarm library
 - main.pl -- Provide entry point for scripts
 - ssl.pl -- Secure Socket Layer (SSL) library
 - crypto.pl -- Cryptography and authentication library
- crypto_n_random_bytes/2
 - crypto_data_hash/3
 - crypto_file_hash/3
 - crypto_context_new/2
 - crypto_data_context/3
 - crypto_context_hash/2
 - crypto_open_hash_stream/3
 - crypto_stream_hash/2
 - crypto_password_hash/2
 - crypto_password_hash/3
 - crypto_data_hkdf/4
 - ecdsa_sign/4
 - ecdsa_verify/4
 - hex_bytes/2
 - rsa_private_decrypt/4
 - rsa_private_encrypt/4
 - rsa_public_decrypt/4
 - rsa_public_encrypt/4
 - rsa_sign/4
 - rsa_verify/4
 - crypto_data_decrypt/6
 - crypto_data_encrypt/6
 - crypto_modular_inverse/3
 - crypto_generate_prime/3
 - crypto_is_prime/2
 - crypto_name_curve/2
 - crypto_curve_order/2
 - crypto_curve_generator/2
 - crypto_curve_scalar_mult/4
 
 - filesex.pl -- Extended operations on files
 - doc_http.pl -- Documentation server
 - pldoc.pl -- Process source documentation
 - operators.pl -- Manage operators
 - prolog_source.pl -- Examine Prolog source-files
 - base64.pl -- Base64 encoding and decoding
 - aggregate.pl -- Aggregation operators on backtrackable predicates
 - ordsets.pl -- Ordered set manipulation
 - oset.pl -- Ordered set manipulation
 - www_browser.pl -- Open a URL in the users browser
 - process.pl -- Create processes and redirect I/O
 - prolog_colour.pl -- Prolog syntax colouring support.
 - prolog_xref.pl -- Prolog cross-referencer data collection
 - predicate_options.pl -- Access and analyse predicate options
 - prolog_clause.pl -- Get detailed source-information about a clause
 - occurs.pl -- Finding and counting sub-terms
 - listing.pl -- List programs and pretty print clauses
 - record.pl -- Access compound arguments by name
 - assoc.pl -- Binary associations
 - ugraphs.pl -- Graph manipulation library
 - xpath.pl -- Select nodes in an XML DOM
 - prolog_pack.pl -- A package manager for Prolog
 - archive.pl -- Access several archive formats
 - rdf.pl
 - rdf_parser.pl
 - rewrite.pl
 - quintus.pl -- Quintus compatibility
 - rdf_triple.pl -- Create triples from intermediate representation
 - sgml_write.pl -- XML/SGML writer module
 - xsdp_types.pl -- XML-Schema primitive types
 - thread.pl -- High level thread primitives
 - git.pl -- Run GIT commands
 - ctypes.pl -- Character code classification
 - sha.pl -- SHA secure hashes
 - crypt.pl
 - persistency.pl -- Provide persistent dynamic predicates
 - tty.pl -- Terminal operations
 - terms.pl -- Term manipulation
 - snowball.pl -- The Snowball multi-lingual stemmer library
 - sandbox.pl -- Sandboxed Prolog code
 - prolog_format.pl -- Analyse format specifications
 - when.pl -- Conditional coroutining
 - apply_macros.pl -- Goal expansion rules to avoid meta-calling
 - double_metaphone.pl -- Phonetic string matching
 - porter_stem.pl
 - nb_set.pl -- Non-backtrackable sets
 - c14n2.pl -- C14n2 canonical XML documents
 - dicts.pl -- Dict utilities
 - solution_sequences.pl -- Modify solution sequences
 - uuid.pl -- Universally Unique Identifier (UUID) Library
 - pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
 - backcomp.pl -- Backward compatibility
 - system.pl -- System utilities
 - rdf_write.pl -- Write RDF/XML from a list of triples
 - date.pl -- Process dates and times
 - zlib.pl -- Zlib wrapper for SWI-Prolog
 - rdf_ntriples.pl -- RDF N-triples parser (obsolete)
 - csv.pl -- Process CSV (Comma-Separated Values) data
 - dif.pl -- The dif/2 constraint
 - ansi_term.pl -- Print decorated text to ANSI consoles
 - prolog_stack.pl -- Examine the Prolog stack
 - edinburgh.pl -- Some traditional Edinburgh predicates
 - helpidx.pl
 - explain.pl -- Describe Prolog Terms
 - edit.pl -- Editor interface
 - make.pl -- Reload modified source files
 - check.pl -- Consistency checking
 - prolog_codewalk.pl -- Prolog code walker
 - prolog_metainference.pl -- Infer meta-predicate properties
 - prolog_breakpoints.pl -- Manage Prolog break-points
 - threadutil.pl -- Interactive thread utilities
 - statistics.pl -- Get information about resource usage
 - help.pl
 - pengines.pl -- Pengines: Web Logic Programming Made Easy
 - charsio.pl -- I/O on Lists of Character Codes
 - modules.pl -- Module utility predicates
 - term_to_json.pl
 - random.pl -- Random numbers
 - md5.pl -- MD5 hashes
 - pprint.pl -- Pretty Print Prolog terms
 - lazy_lists.pl -- Lazy list handling
 - pengines_io.pl -- Provide Prolog I/O for HTML clients
 - yall.pl -- Lambda expressions
 - prolog_stream.pl -- A stream with Prolog callbacks
 - cgi.pl -- Read CGI parameters
 - unicode.pl -- Unicode string handling
 - editline.pl -- BSD libedit based command line editing
 - console_input.pl
 - hash_stream.pl -- Maintain a hash on a stream
 - shell.pl -- Elementary shell commands
 - optparse.pl -- command line parsing
 - chr.pl
 - sort.pl
 - base32.pl -- Base32 encoding and decoding
 - codesio.pl -- I/O on Lists of Character Codes
 - coinduction.pl -- Co-Logic Programming
 - heaps.pl -- heaps/priority queues
 - varnumbers.pl -- Utilities for numbered terms
 - table.pl
 - qsave.pl -- Save current program as a state or executable
 - prolog_autoload.pl -- Autoload all dependencies
 - tabling.pl -- Tabled execution (SLG WAM)
 - prolog_history.pl -- Per-directory persistent commandline history
 - writef.pl -- Old-style formatted write
 - files.pl
 - udp_broadcast.pl -- A UDP Broadcast Bridge
 - doc_files.pl -- Create stand-alone documentation files
 - xmlenc.pl -- XML encryption library
 - rlimit.pl
 - streampool.pl
 - win_menu.pl -- Console window menu
 - readline.pl -- GNU readline interface
 - xmldsig.pl -- XML Digital signature
 
 
 - library
 
- ecdsa_sign(+Key, +Data, -Signature, +Options)
 - Create an ECDSA signature for Data with EC private key Key.
Among the most common cases is signing a hash that was created
with crypto_data_hash/3 or other predicates of this library. For
this reason, the default encoding (
hex) assumes that Data is an atom, string, character list or code list representing the data in hexadecimal notation. See rsa_sign/4 for an example.Options:
- encoding(+Encoding)
 - Encoding to use for Data. Default is 
hex. Alternatives areoctet,utf8andtext.