github.com/gdamore/mangos@v1.4.0/macat/README.md (about)

     1  ## DESCRIPTION
     2  
     3  The **macat** command is a command‐line interface to send and receive data
     4  via the
     5  [mangos](https://github.com/nanomsg/mangos) implementation of the SP
     6  [nanomsg](http://www.nanomsg.org) protocols. It is designed to be suitable
     7  for use as a drop‐in replacement for nanocat(1).
     8  
     9  Additionally it has a some extra features, to support mangos' additional
    10  capabilities.  In particular, it supports SSL/TLS, and has a few flags
    11  related to that.
    12  
    13  ## SYNOPSIS
    14  macat <*OPTIONS*>
    15  
    16  ## OPTIONS
    17  
    18  * −v,−−verbose
    19  > Increase verbosity
    20  * −q,−−silent
    21  > Decrease verbosity
    22  * −−push
    23  > Use PUSH socket type
    24  * −−pull
    25  > Use PULL socket type
    26  * −−pub
    27  > Use PUB socket type
    28  * −−sub
    29  > Use SUB socket type
    30  * −−req
    31  > Use REQ socket type
    32  * −−rep
    33  > Use REP socket type
    34  * −−surveyor
    35  > Use SURVEYOR socket type
    36  * −−respondent
    37  > Use RESPONDENT socket type
    38  * −−bus
    39  > Use BUS socket type
    40  * −−pair
    41  > Use PAIR socket type
    42  * −−star
    43  > Use STAR socket type
    44  * −−bind *ADDR*
    45  > Bind socket to *ADDR*
    46  * −−connect *ADDR*
    47  > Connect socket to ADDR
    48  * −X,−−bind‐ipc *PATH*
    49  > Bind socket to IPC PATH
    50  * −x,−−connect‐ipc *PATH*
    51  > Connect socket to IPC *PATH*
    52  * −L,−−bind‐local *PORT*
    53  > Bind socket to TCP localhost *PORT*
    54  * −l,−−connect‐local *PORT*
    55  > Connect socket to TCP localhost *PORT*
    56  * −−subscribe *PREFIX*
    57  > Subcribe to *PREFIX* (default is wildcard)
    58  * −−recv‐timeout *SEC*
    59  > Set receive timeout
    60  * −−send‐timeout *SEC*
    61  > Set send timeout
    62  * −d,−−send‐delay *SEC*
    63  > Set initial send delay
    64  * −−raw
    65  > Raw output, no delimiters
    66  * −A,−−ascii
    67  > ASCII output, one per line
    68  * −Q,−−quoted
    69  > Quoted output, one per line
    70  * −−msgpack
    71  > Msgpacked binay output (see msgpack.org)
    72  * −i,−−interval *SEC*
    73  > Send DATA every *SEC* seconds
    74  * −D,−−data *DATA*
    75  > Data to send
    76  * −F,−−file *FILE*
    77  > Send contents of *FILE*
    78  * −−sslv3
    79  > Force SSLv3 when using SSL/TLS
    80  * −−tlsv1
    81  > Force TLSv1.x when using SSL/TLS
    82  * −−tlsv1.1
    83  > Force TLSv1.0 when using SSL/TLS
    84  * −−tlsv1.1
    85  > Force TLSv1.1 when using SSL/TLS
    86  * −−tlsv1.2
    87  > Force TLSv1.2 when using SSL/TLS
    88  * −E,−−cert *FILE*
    89  > Use certificate in *FILE* for SSL/TLS
    90  * −−key *FILE*
    91  > Use private key in *FILE* for SSL/TLS
    92  * −−cacert *FILE*
    93  > Use CA certicate(s) in *FILE* for SSL/TLS
    94  * −k,−−insecure
    95  > Do not validate TLS/SSL peer certificate
    96  * −−help
    97  > Show usage message
    98  
    99  ## SSL/TLS DETAILS
   100  
   101  The security model for macat is that authentication should be mutual by
   102  default.  Therefore, the user should normally supply both a certificate/key
   103  (either in a single file, or in separate files with *--key*), and a CA
   104  certificate file (perhaps consisting of many certificates) which should have
   105  been used to sign the peer's certificate.  This is true for **BOTH** client
   106  and server.  (This is a but unlike traditional HTTPS, where it mutual
   107  authentication is the exception rather than the rule.)
   108  
   109  A client can choose to skip verification of the server by supplying
   110  the *--insecure* (*-k*) flag instead of the *--cacert* argument.  This is not
   111  recommended.  It can also choose not to authenticate itself to the server
   112  by simply not supplying a *--cert* and *--key*.
   113  
   114  The server (the party doing the bind) **MUST** always supply its own
   115  certificate.  It will normally attempt to authenticate clients, but this
   116  can be disabled by supplying *--insecure* or *-k* instead of
   117  the *--cacert* argument.
   118  
   119  ## AUTHOR
   120  Garrett D’Amore