Large diffs are not rendered by default.

@@ -0,0 +1 @@
{"google":"","note":"Don't delete this file! It's used internally to help with page regeneration.","name":"Woofs","tagline":"web one-time offer file securely","body":"Web Onetime Offer File Securely\r\n-------------------------------\r\nauthor: [Kyle Isom](http://www.kyleisom.net)\r\n\r\n### quick overview\r\n\r\npython program behaving the same as the woof script written by \r\n[Simon Budig](http://www.home.unix-ag.org/simon/) but providing SSL encryption.\r\n\r\nlicense: dual ISC / public domain license. see `LICENSE`.\r\n\r\n\r\n- - -\r\n\r\nwhat does it do?\r\nwoofs allows you to quickly offer a file for download on your machine. it offers\r\nthe ability to select the port and number of times the file can be downloaded\r\nbefore the HTTPS server shuts down (which defaults to 1).\r\n\r\ndependencies:\r\n* argparse\r\n\r\n- - -\r\n\r\n### how do i use it?\r\nthe simplest way is to use something like this:\r\n```bash\r\n./woofs.py --port 443 --downloads 2 file.tar.bz\r\n```\r\nthis looks for a configuration file at `${HOME}/.config/woofs/config` which should\r\nlook something like:\r\n```bash\r\ncat ~/.config/woofs/config\r\nkey: /etc/ssl/private/server.key\r\ncert: /etc/ssl/server.crt\r\n```\r\n\r\nyou can also specify a configuration file using the `--config` option, or a key\r\nand certificate using `--key` and `--cert` to point to the files.\r\n\r\nby default, woofs uses the internal LAN address (i.e. 192.168.1.2). you can\r\nhave it use your external IP address using `--external`.\r\n\r\nyou can also use gzip compression by using the `--gzip` (or `-z`).\r\n\r\nthe most likely cause of problems will be incorrect permissions - see the\r\nsection on permissions below.\r\n\r\n\r\n### how do i generate ssl keys?\r\n\r\n```bash\r\nopenssl genrsa -out ~/.woofs/server.key 2048\r\nopenssl req -new -key ~/.woofs/server.key -out ~/.woofs/server.csr\r\n```\r\nat this point you have two options -\r\n\r\n1. submit the certificate signature request to a trusted CA, who will give\r\nyou a signed certificate in exchange for money, or\r\n2. self-sign your certificate. there are a number of security issues here\r\nbut the easiest way around them is to have the end-user verify the SSL\r\nfingerprint.\r\n\r\nif you choose to self-sign, at this point you would need to issue the following:\r\n```bash\r\nopenssl x509 -req -days 365 -in ~/.woofs/server.csr \\\r\n -signkey ~/.woofs/server.key -out ~/.woofs/server.crt\r\n```\r\n\r\n### a note on file permissions\r\n\r\nit is critical that `~/.woofs` (or whatever folder you put the key in) must have\r\nsecure permissions: i recommend the files inside have a mode of `0600`, and the\r\ndirectory have the permissions of `0700`.\r\n\r\nFiles need to have secure permissions; the private files (`config` and the\r\nprivate key) should be `0400` or `0600`, while public files should be `644`.\r\n\r\n"}
@@ -0,0 +1,3 @@
nav {
display: none;
}

Large diffs are not rendered by default.

@@ -0,0 +1,70 @@
.highlight .hll { background-color: #404040 }
.highlight { color: #d0d0d0 }
.highlight .c { color: #999999; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .g { color: #d0d0d0 } /* Generic */
.highlight .k { color: #6ab825; font-weight: normal } /* Keyword */
.highlight .l { color: #d0d0d0 } /* Literal */
.highlight .n { color: #d0d0d0 } /* Name */
.highlight .o { color: #d0d0d0 } /* Operator */
.highlight .x { color: #d0d0d0 } /* Other */
.highlight .p { color: #d0d0d0 } /* Punctuation */
.highlight .cm { color: #999999; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #cd2828; font-weight: normal } /* Comment.Preproc */
.highlight .c1 { color: #999999; font-style: italic } /* Comment.Single */
.highlight .cs { color: #e50808; font-weight: normal; background-color: #520000 } /* Comment.Special */
.highlight .gd { color: #d22323 } /* Generic.Deleted */
.highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #d22323 } /* Generic.Error */
.highlight .gh { color: #ffffff; font-weight: normal } /* Generic.Heading */
.highlight .gi { color: #589819 } /* Generic.Inserted */
.highlight .go { color: #cccccc } /* Generic.Output */
.highlight .gp { color: #aaaaaa } /* Generic.Prompt */
.highlight .gs { color: #d0d0d0; font-weight: normal } /* Generic.Strong */
.highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
.highlight .gt { color: #d22323 } /* Generic.Traceback */
.highlight .kc { color: #6ab825; font-weight: normal } /* Keyword.Constant */
.highlight .kd { color: #6ab825; font-weight: normal } /* Keyword.Declaration */
.highlight .kn { color: #6ab825; font-weight: normal } /* Keyword.Namespace */
.highlight .kp { color: #6ab825 } /* Keyword.Pseudo */
.highlight .kr { color: #6ab825; font-weight: normal } /* Keyword.Reserved */
.highlight .kt { color: #6ab825; font-weight: normal } /* Keyword.Type */
.highlight .ld { color: #d0d0d0 } /* Literal.Date */
.highlight .m { color: #3677a9 } /* Literal.Number */
.highlight .s { color: #9dd5f1 } /* Literal.String */
.highlight .na { color: #bbbbbb } /* Name.Attribute */
.highlight .nb { color: #24909d } /* Name.Builtin */
.highlight .nc { color: #447fcf; text-decoration: underline } /* Name.Class */
.highlight .no { color: #40ffff } /* Name.Constant */
.highlight .nd { color: #ffa500 } /* Name.Decorator */
.highlight .ni { color: #d0d0d0 } /* Name.Entity */
.highlight .ne { color: #bbbbbb } /* Name.Exception */
.highlight .nf { color: #447fcf } /* Name.Function */
.highlight .nl { color: #d0d0d0 } /* Name.Label */
.highlight .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */
.highlight .nx { color: #d0d0d0 } /* Name.Other */
.highlight .py { color: #d0d0d0 } /* Name.Property */
.highlight .nt { color: #6ab825;} /* Name.Tag */
.highlight .nv { color: #40ffff } /* Name.Variable */
.highlight .ow { color: #6ab825; font-weight: normal } /* Operator.Word */
.highlight .w { color: #666666 } /* Text.Whitespace */
.highlight .mf { color: #3677a9 } /* Literal.Number.Float */
.highlight .mh { color: #3677a9 } /* Literal.Number.Hex */
.highlight .mi { color: #3677a9 } /* Literal.Number.Integer */
.highlight .mo { color: #3677a9 } /* Literal.Number.Oct */
.highlight .sb { color: #9dd5f1 } /* Literal.String.Backtick */
.highlight .sc { color: #9dd5f1 } /* Literal.String.Char */
.highlight .sd { color: #9dd5f1 } /* Literal.String.Doc */
.highlight .s2 { color: #9dd5f1 } /* Literal.String.Double */
.highlight .se { color: #9dd5f1 } /* Literal.String.Escape */
.highlight .sh { color: #9dd5f1 } /* Literal.String.Heredoc */
.highlight .si { color: #9dd5f1 } /* Literal.String.Interpol */
.highlight .sx { color: #ffa500 } /* Literal.String.Other */
.highlight .sr { color: #9dd5f1 } /* Literal.String.Regex */
.highlight .s1 { color: #9dd5f1 } /* Literal.String.Single */
.highlight .ss { color: #9dd5f1 } /* Literal.String.Symbol */
.highlight .bp { color: #24909d } /* Name.Builtin.Pseudo */
.highlight .vc { color: #40ffff } /* Name.Variable.Class */
.highlight .vg { color: #40ffff } /* Name.Variable.Global */
.highlight .vi { color: #40ffff } /* Name.Variable.Instance */
.highlight .il { color: #3677a9 } /* Literal.Number.Integer.Long */

Large diffs are not rendered by default.