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

  • swipl
    • library
      • settings.pl -- Setting management
      • error.pl -- Error generating support
      • broadcast.pl -- Event service
      • debug.pl -- Print debug messages and test assertions
      • lists.pl -- List Manipulation
      • pairs.pl -- Operations on key-value lists
      • option.pl -- Option list processing
      • arithmetic.pl -- Extensible arithmetic
      • pldoc.pl -- Process source documentation
      • apply.pl -- Apply predicates on a list
      • operators.pl -- Manage operators
      • prolog_source.pl -- Examine Prolog source-files
      • pengines.pl -- Pengines: Web Logic Programming Made Easy
      • time.pl -- Time and alarm library
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • zip.pl -- Access resource ZIP archives
      • uri.pl -- Process URIs
      • socket.pl -- Network socket (TCP and UDP) library
      • 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.
      • memfile.pl
      • 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
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • ordsets.pl -- Ordered set manipulation
      • oset.pl -- Ordered set manipulation
      • record.pl -- Access compound arguments by name
      • filesex.pl -- Extended operations on files
      • charsio.pl -- I/O on Lists of Character Codes
      • sandbox.pl -- Sandboxed Prolog code
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • when.pl -- Conditional coroutining
      • modules.pl -- Module utility predicates
      • term_to_json.pl
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • ssl.pl -- Secure Socket Layer (SSL) library
        • ssl_context/3
        • ssl_add_certificate_key/4
        • ssl_set_options/3
        • ssl_negotiate/5
        • ssl_peer_certificate/2
        • ssl_peer_certificate_chain/2
        • ssl_session/2
        • load_certificate/2
        • load_crl/2
        • system_root_certificates/1
        • load_private_key/3
        • load_public_key/2
        • cert_accept_any/5
        • ssl_secure_ciphers/1
      • crypto.pl -- Cryptography and authentication library
      • solution_sequences.pl -- Modify solution sequences
      • nb_set.pl -- Non-backtrackable sets
      • terms.pl -- Term manipulation
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • sha.pl -- SHA secure hashes
      • random.pl -- Random numbers
      • pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
      • pengines_io.pl -- Provide Prolog I/O for HTML clients
      • listing.pl -- List programs and pretty print clauses
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • prolog_clause.pl -- Get detailed source-information about a clause
      • occurs.pl -- Finding and counting sub-terms
      • yall.pl -- Lambda expressions
      • prolog_stream.pl -- A stream with Prolog callbacks
      • process.pl -- Create processes and redirect I/O
      • 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
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • predicate_options.pl -- Access and analyse predicate options
      • lazy_lists.pl -- Lazy list handling
      • ugraphs.pl -- Graph manipulation library
      • xpath.pl -- Select nodes in an XML DOM
      • doc_http.pl -- Documentation server
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • crypt.pl
      • persistency.pl -- Provide persistent dynamic predicates
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • unix.pl -- Unix specific operations
      • mallocinfo.pl -- Memory allocation details
      • chr.pl
      • dicts.pl -- Dict utilities
      • dif.pl -- The dif/2 constraint
      • varnumbers.pl -- Utilities for numbered terms
      • shell.pl -- Elementary shell commands
      • uid.pl -- User and group management on Unix systems
      • syslog.pl -- Unix syslog interface
      • main.pl -- Provide entry point for scripts
      • base32.pl -- Base32 encoding and decoding
      • backcomp.pl -- Backward compatibility
      • system.pl -- System utilities
      • 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
      • sort.pl
      • statistics.pl -- Get information about resource usage
      • isub.pl -- isub: a string similarity measure
      • test_cover.pl -- Clause cover analysis
      • prolog_stack.pl -- Examine the Prolog stack
      • archive.pl -- Access several archive formats
      • sgml_write.pl -- XML/SGML writer module
      • prolog_autoload.pl -- Autoload all dependencies
      • prolog_codewalk.pl -- Prolog code walker
      • prolog_metainference.pl -- Infer meta-predicate properties
      • check.pl -- Consistency checking
      • odbc.pl
      • optparse.pl -- command line parsing
      • make.pl -- Reload modified source files
      • console_input.pl
      • editline.pl -- BSD libedit based command line editing
      • unicode.pl -- Unicode string handling
      • prolog_history.pl -- Per-directory persistent commandline history
      • prolog_config.pl -- Provide configuration information
      • table.pl
      • pwp.pl -- Prolog Well-formed Pages
      • xsdp_types.pl -- XML-Schema primitive types
      • doc_files.pl -- Create stand-alone documentation files
      • udp_broadcast.pl -- A UDP broadcast proxy
      • xmlenc.pl -- XML encryption library
      • edit.pl -- Editor interface
      • double_metaphone.pl -- Phonetic string matching
      • c14n2.pl -- C14n2 canonical XML documents
      • rdf_parser.pl
      • rewrite.pl
      • quintus.pl -- Quintus compatibility
      • streampool.pl -- Input multiplexing
      • snowball.pl -- The Snowball multi-lingual stemmer library
      • protobufs.pl -- Google's Protocol Buffers
      • writef.pl -- Old-style formatted write
      • rdf.pl
      • rdf_triple.pl -- Create triples from intermediate representation
      • help.pl -- Text based manual
      • threadutil.pl -- Interactive thread utilities
      • doc_latex.pl -- PlDoc LaTeX backend
      • files.pl
      • thread.pl -- High level thread primitives
      • paxos.pl -- A Replicated Data Store
      • plunit.pl -- Unit Testing
      • qsave.pl -- Save current program as a state or executable
      • rdf_write.pl -- Write RDF/XML from a list of triples
      • readline.pl -- GNU readline interface
      • rlimit.pl
      • xmldsig.pl -- XML Digital signature
      • cgi.pl -- Read CGI parameters
      • explain.pl -- Describe Prolog Terms
 system_root_certificates(-List) is det
List is a list of trusted root certificates as provided by the OS. This is the list used by ssl_context/3 when using the option system(root_certificates). The list is obtained using an OS specific process. The current implementation is as follows:
  • On Windows, CertOpenSystemStore() is used to import the "ROOT" certificates from the OS.
  • On MacOSX, the trusted keys are loaded from the SystemRootCertificates key chain. The Apple API for this requires the SSL interface to be compiled with an XCode compiler, i.e., not with native gcc.
  • Otherwise, certificates are loaded from a file defined by the Prolog flag system_cacert_filename. The initial value of this flag is operating system dependent. For security reasons, the flag can only be set prior to using the SSL library. For example:
    :- use_module(library(ssl)).
    :- set_prolog_flag(system_cacert_filename,
                       '/home/jan/ssl/ca-bundle.crt').