/usr/lib/swipl/library/crypto.pl
AllApplicationManualNameSummaryHelp

  • swipl
    • library
      • error.pl
      • apply.pl -- Apply predicates on a list
      • lists.pl -- List Manipulation
      • debug.pl -- Print debug messages and test assertions
      • broadcast.pl -- Event service
      • socket.pl -- Network socket (TCP and UDP) library
      • predicate_options.pl -- Access and analyse predicate options
      • 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
      • gensym.pl -- Generate unique symbols
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl -- Read utilities
      • 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
      • pldoc.pl -- Process source documentation
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • pengines.pl -- Pengines: Web Logic Programming Made Easy
      • record.pl -- Access compound arguments by name
      • memfile.pl
      • sgml.pl -- SGML, XML and HTML parser
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • time.pl -- Time and alarm library
      • uri.pl -- Process URIs
      • solution_sequences.pl -- Modify solution sequences
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • ordsets.pl -- Ordered set manipulation
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
      • pengines_io.pl -- Provide Prolog I/O for HTML clients
      • sandbox.pl -- Sandboxed Prolog code
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • yall.pl -- Lambda expressions
      • sha.pl -- SHA secure hashes
      • process.pl -- Create processes and redirect I/O
      • filesex.pl -- Extended operations on files
      • zlib.pl -- Zlib wrapper for SWI-Prolog
      • bdb.pl -- Berkeley DB interface
      • hash_stream.pl -- Maintain a hash on a stream
      • md5.pl -- MD5 hashes
      • porter_stem.pl
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • ctypes.pl -- Character code classification
      • modules.pl -- Module utility predicates
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl -- Lazy list handling
      • prolog_code.pl -- Utilities for reasoning about code
      • ugraphs.pl -- Graph manipulation library
      • xpath.pl -- Select nodes in an XML DOM
      • iostream.pl -- Utilities to deal with streams
      • doc_http.pl -- Documentation server
      • url.pl -- Analysing and constructing URL
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • prolog_config.pl -- Provide configuration information
      • git.pl -- Run GIT commands
      • strings.pl -- String utilities
      • dif.pl -- The dif/2 constraint
      • dialect.pl -- Support multiple Prolog dialects
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • terms.pl -- Term manipulation
      • listing.pl -- List programs and pretty print clauses
      • persistency.pl -- Provide persistent dynamic predicates
      • pengines_sandbox.pl -- Declare Pengine interaction sandbox-safe
      • term_to_json.pl
      • prolog_stack.pl -- Examine the Prolog stack
      • prolog_clause.pl -- Get detailed source-information about a clause
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • mallocinfo.pl -- Memory allocation details
      • chr.pl
      • sort.pl
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • nb_set.pl -- Non-backtrackable sets
      • base32.pl -- Base32 encoding and decoding
      • charsio.pl -- I/O on Lists of Character Codes
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • date.pl -- Process dates and times
      • heaps.pl -- heaps/priority queues
      • rbtrees.pl -- Red black trees
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • prolog_stream.pl -- A stream with Prolog callbacks
      • thread.pl -- High level thread primitives
      • help.pl -- Text based manual
      • yaml.pl -- Process YAML data
      • optparse.pl -- command line parsing
      • prolog_history.pl -- Per-directory persistent commandline history
      • readline.pl -- GNU readline interface
      • make.pl -- Reload modified source files
      • editline.pl -- BSD libedit based command line editing
      • redis.pl -- Redis client
      • plunit.pl -- Unit Testing
      • archive.pl -- Access several archive formats
      • sgml_write.pl -- XML/SGML writer module
      • prolog_debug.pl -- User level debugging tools
      • tables.pl -- XSB interface to tables
      • quintus.pl -- Quintus compatibility
      • doc_latex.pl -- PlDoc LaTeX backend
      • crypt.pl
      • threadutil.pl -- Interactive thread utilities
      • macros.pl -- Macro expansion
      • prolog_wrap.pl -- Wrapping predicates
      • writef.pl -- Old-style formatted write
      • explain.pl -- Describe Prolog Terms
      • table.pl
      • shell.pl -- Elementary shell commands
      • xmlenc.pl -- XML encryption library
      • edit.pl -- Editor interface
      • xmldsig.pl -- XML Digital signature
      • c14n2.pl -- C14n2 canonical XML documents
      • fastrw.pl -- Fast reading and writing of terms
      • rlimit.pl
      • system.pl -- System utilities
      • doc_files.pl -- Create stand-alone documentation files
      • test_cover.pl -- Clause coverage analysis
      • stomp.pl -- STOMP client.
      • paxos.pl -- A Replicated Data Store
      • check.pl -- Consistency checking
      • streampool.pl -- Input multiplexing
      • unicode.pl -- Unicode string handling
      • cgi.pl -- Read CGI parameters
      • mqi.pl
      • odbc.pl
      • prolog_autoload.pl -- Autoload all dependencies
      • prolog_codewalk.pl -- Prolog code walker
      • isub.pl -- isub: a string similarity measure
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • prolog_profile.pl -- Execution profiler
      • zip.pl -- Access resource ZIP archives
      • rdf.pl -- RDF/XML parser
      • udp_broadcast.pl -- A UDP broadcast proxy
      • portray_text.pl -- Portray text
      • files.pl
      • rdf_write.pl -- Write RDF/XML from a list of triples
      • increval.pl -- Incremental dynamic predicate modification
      • rwlocks.pl -- Read/write locks
      • intercept.pl -- Intercept and signal interface
      • redis_streams.pl -- Using Redis streams
      • protobufs.pl -- Google's Protocol Buffers ("protobufs")
      • pwp.pl -- Prolog Well-formed Pages
      • snowball.pl -- The Snowball multi-lingual stemmer library
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • qsave.pl -- Save current program as a state or executable
      • oset.pl -- Ordered set manipulation
      • rdf_triple.pl -- Create triples from intermediate representation
      • rdf_parser.pl
      • rewrite_term.pl
      • prolog_trace.pl -- Print access to predicates
      • prolog_versions.pl -- Demand specific Prolog versions
      • double_metaphone.pl -- Phonetic string matching
      • xsdp_types.pl -- XML-Schema primitive types
      • hashtable.pl -- Hash tables
      • prolog_metainference.pl -- Infer meta-predicate properties
      • streams.pl -- Manage Prolog streams
      • readln.pl -- Read line as list of tokens
 rsa_private_decrypt(+PrivateKey, +CipherText, -PlainText, +Options) is det
 rsa_private_encrypt(+PrivateKey, +PlainText, -CipherText, +Options) is det
 rsa_public_decrypt(+PublicKey, +CipherText, -PlainText, +Options) is det
 rsa_public_encrypt(+PublicKey, +PlainText, -CipherText, +Options) is det
RSA Public key encryption and decryption primitives. A string can be safely communicated by first encrypting it and have the peer decrypt it with the matching key and predicate. The length of the string is limited by the key length.

Options:

encoding(+Encoding)
Encoding to use for Data. Default is utf8. Alternatives are utf8 and octet.
padding(+PaddingScheme)
Padding scheme to use. Default is pkcs1. Alternatives are pkcs1_oaep, sslv23 and none. Note that none should only be used if you implement cryptographically sound padding modes in your application code as encrypting unpadded data with RSA is insecure
Errors
- ssl_error(Code, LibName, FuncName, Reason) is raised if there is an error, e.g., if the text is too long for the key.
See also
- load_private_key/3, load_public_key/2 can be use to load keys from a file. The predicate load_certificate/2 can be used to obtain the public key from a certificate.