/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
      • option.pl
      • uid.pl -- User and group management on Unix systems
      • unix.pl
      • syslog.pl -- Unix syslog interface
      • thread_pool.pl -- Resource bounded thread management
      • gensym.pl
      • settings.pl
      • arithmetic.pl -- Extensible arithmetic
      • main.pl
      • 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
      • rbtrees.pl -- Red black trees
      • prolog_stream.pl -- A stream with Prolog callbacks
      • backcomp.pl -- Backward compatibility
      • charsio.pl -- I/O on Lists of Character Codes
      • streampool.pl -- Input multiplexing
      • statistics.pl -- Get information about resource usage
      • threadutil.pl -- Interactive thread utilities
      • editline.pl -- BSD libedit based command line editing
      • prolog_debug.pl -- User level debugging tools
      • thread.pl -- High level thread primitives
      • prolog_profile.pl -- Execution profiler
      • prolog_versions.pl -- Demand specific Prolog versions
      • mqi.pl
      • optparse.pl -- command line parsing
      • make.pl -- Reload modified source files
      • archive.pl -- Access several archive formats
      • double_metaphone.pl -- Phonetic string matching
      • zip.pl -- Access resource ZIP archives
      • check.pl -- Consistency checking
      • redis.pl -- Redis client
      • base32.pl -- Base32 encoding and decoding
      • 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
      • when.pl -- Conditional coroutining
      • stomp.pl -- STOMP client.
      • plunit.pl -- Unit Testing
      • paxos.pl -- A Replicated Data Store
      • protobufs.pl -- Google's Protocol Buffers ("protobufs")
      • intercept.pl -- Intercept and signal interface
      • table.pl
      • macros.pl -- Macro expansion
      • sgml_write.pl -- XML/SGML writer module
      • rdf_write.pl -- Write RDF/XML from a list of triples
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl -- XSB interface to tables
      • system.pl -- System utilities
      • quintus.pl -- Quintus compatibility
      • shell.pl -- Elementary shell commands
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • edit.pl -- Editor interface
      • test_cover.pl -- Clause coverage analysis
      • prolog_codewalk.pl -- Prolog code walker
      • rdf_triple.pl -- Create triples from intermediate representation
      • rdf_parser.pl
      • rewrite_term.pl
      • rdf.pl -- RDF/XML parser
      • explain.pl -- Describe Prolog Terms
      • isub.pl -- isub: a string similarity measure
      • hashtable.pl -- Hash tables
      • prolog_history.pl -- Per-directory persistent commandline history
      • readline.pl -- GNU readline interface
      • pwp.pl -- Prolog Well-formed Pages
      • yaml.pl -- Process YAML data
      • doc_latex.pl -- PlDoc LaTeX backend
      • odbc.pl
      • files.pl
      • crypt.pl
      • snowball.pl -- The Snowball multi-lingual stemmer library
      • redis_streams.pl -- Using Redis streams
      • xmldsig.pl -- XML Digital signature
      • c14n2.pl -- C14n2 canonical XML documents
      • fastrw.pl -- Fast reading and writing of terms
      • xmlenc.pl -- XML encryption library
      • qsave.pl -- Save current program as a state or executable
      • prolog_autoload.pl -- Autoload all dependencies
      • udp_broadcast.pl -- A UDP broadcast proxy
      • streams.pl -- Manage Prolog streams
      • portray_text.pl -- Portray text
      • rwlocks.pl -- Read/write locks
      • readln.pl -- Read line as list of tokens
      • doc_files.pl -- Create stand-alone documentation files
      • help.pl -- Text based manual
      • prolog_metainference.pl -- Infer meta-predicate properties
      • prolog_wrap.pl -- Wrapping predicates
      • prolog_trace.pl -- Print access to predicates
      • writef.pl -- Old-style formatted write
      • cgi.pl -- Read CGI parameters
      • xsdp_types.pl -- XML-Schema primitive types
      • unicode.pl -- Unicode string handling
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • oset.pl -- Ordered set manipulation
      • rlimit.pl
 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.