forked from I2P_Developers/i2p.www
propagate from branch 'i2p.www' (head aecd236e03c176955fd21d0d293f0731f65dc929)
to branch 'i2p.www.revamp' (head c0bf7e66ba62462bfa138be2e880de4422b0c959)
This commit is contained in:
617
i2p2www/pages/site/get-involved/develop/applications.html
Normal file
617
i2p2www/pages/site/get-involved/develop/applications.html
Normal file
@@ -0,0 +1,617 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Application Development') }}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}May 2013{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.6{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{{ _('Application Development Guide') }}</h1>
|
||||
|
||||
<h2>{{ _('Contents') }}</h2>
|
||||
<ul>
|
||||
<li><a href="#why">{{ _('Why write I2P-specific code?') }}</a></li>
|
||||
<li><a href="#concepts">{{ _('Important concepts') }}</a></li>
|
||||
<li><a href="#options">{{ _('Development options') }}</a></li>
|
||||
<li><a href="#start"><b>{{ _('Start developing - a simple guide') }}</b></a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="why">{{ _('Why write I2P-specific code?') }}</h2>
|
||||
|
||||
<p>{% trans i2ptunnel=site_url('docs/api/i2ptunnel') -%}
|
||||
There are multiple ways to use applications in I2P.
|
||||
Using <a href="{{ i2ptunnel }}">I2PTunnel</a>,
|
||||
you can use regular applications without needing to program explicit I2P support.
|
||||
This is very effective for client-server scenario's,
|
||||
where you need to connect to a single website.
|
||||
You can simply create a tunnel using I2PTunnel to connect to that website, as shown in <a href="#tunnel.serverclient">Figure 1</a>.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
If your application is distributed, it will require connections to a large amount of peers.
|
||||
Using I2PTunnel, you will need to create a new tunnel for each peer you want to contact,
|
||||
as shown in <a href="#tunnel.peertopeer">Figure 2</a>.
|
||||
This process can of course be automated, but running a lot of I2PTunnel instances creates a large amount of overhead.
|
||||
In addition, with many protocols you will need to force everyone to
|
||||
use the same set of ports for all peers - e.g. if you want to reliably run DCC
|
||||
chat, everyone needs to agree that port 10001 is Alice, port 10002 is Bob, port
|
||||
10003 is Charlie, and so on, since the protocol includes TCP/IP specific information
|
||||
(host and port).
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
General network applications often send a lot of additional data that could be used to identify users.
|
||||
Hostnames, port numbers, time zones, character sets, etc. are often sent without informing the user.
|
||||
As such, designing the network protocol specifically with anonymity in mind
|
||||
can avoid compromising user identities.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
There are also efficiency considerations to review when determining how to
|
||||
interact on top of I2P. The streaming library and things built on top of it
|
||||
operate with handshakes similar to TCP, while the core I2P protocols (I2NP and I2CP)
|
||||
are strictly message based (like UDP or in some instances raw IP). The important
|
||||
distinction is that with I2P, communication is operating over a long fat network -
|
||||
each end to end message will have nontrivial latencies, but may contain payloads
|
||||
of up to several KB. An application that needs a simple request and response can get rid
|
||||
of any state and drop the latency incurred by the startup and teardown handshakes
|
||||
by using (best effort) datagrams without having to worry about MTU detection or
|
||||
fragmentation of messages.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<div class="box" id="tunnel.serverclient" style="text-align:center">
|
||||
<img src="{{ url_for('static', filename='images/i2ptunnel_serverclient.png') }}" alt="{{ _('Creating a server-client connection using I2PTunnel only requires creating a single tunnel.') }}" title="{{ _('Creating a server-client connection using I2PTunnel only requires creating a single tunnel.') }}" />
|
||||
<br /><br />
|
||||
{{ _('Figure 1:') }} {{ _('Creating a server-client connection using I2PTunnel only requires creating a single tunnel.') }}
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
<div class="box" id="tunnel.peertopeer" style="text-align:center">
|
||||
<img src="{{ url_for('static', filename='images/i2ptunnel_peertopeer.png') }}" alt="{{ _('Setting up connections for a peer-to-peer applications requires a very large amount of tunnels.') }}" title="{{ _('Setting up connections for a peer-to-peer applications requires a very large amount of tunnels.') }}" />
|
||||
<br /><br />
|
||||
{{ _('Figure 2:') }} {{ _('Setting up connections for a peer-to-peer applications requires a very large amount of tunnels.') }}
|
||||
</div>
|
||||
<br/>
|
||||
|
||||
{% trans -%}
|
||||
In summary, a number of reasons to write I2P-specific code:
|
||||
{%- endtrans %}
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
Creating a large amount of I2PTunnel instances consumes a non-trivial amount of resources,
|
||||
which is problematic for distributed applications (a new tunnel is required for each peer).
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
General network protocols often send a lot of additional data that can be used to identify users.
|
||||
Programming specifically for I2P allows the creation of a network protocol
|
||||
that does not leak such information, keeping users anonymous and secure.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Network protocols designed for use on the regular internet can be inefficient
|
||||
on I2P, which is a network with a much higher latency.
|
||||
{%- endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>{% trans plugins=site_url('docs/plugins') -%}
|
||||
I2P supports a standard <a href="{{ plugins }}">plugins interface</a> for developers
|
||||
so that applications may be easily integrated and distributed.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
|
||||
<p>{% trans -%}
|
||||
Applications written in Java and accessible/runnable
|
||||
using an HTML interface via the standard webapps/app.war
|
||||
may be considered for inclusion in the i2p distribution.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2 id="concepts">{{ _('Important concepts') }}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
There are a few changes that require adjusting to when using I2P:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('Destination ~= host+port') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
An application running on I2P sends messages from and receives messages to a
|
||||
unique cryptographically secure end point - a "destination". In TCP or UDP
|
||||
terms, a destination could (largely) be considered the equivalent of a hostname
|
||||
plus port number pair, though there are a few differences.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
An I2P destination itself is a cryptographic construct - all data sent to one is
|
||||
encrypted as if there were universal deployment of IPsec with the (anonymized)
|
||||
location of the end point signed as if there were universal deployment of DNSSEC.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
I2P destinations are mobile identifiers - they can be moved from one I2P router
|
||||
to another (or it can even "multihome" - operate on multiple routers at
|
||||
once). This is quite different from the TCP or UDP world where a single end point (port)
|
||||
must stay on a single host.
|
||||
{%- endtrans %}</li>
|
||||
<li>
|
||||
<p>{% trans -%}
|
||||
I2P destinations are ugly and large - behind the scenes, they contain a 2048 bit ElGamal
|
||||
public key for encryption, a 1024 bit DSA public key for signing, and a variable size
|
||||
certificate, which may contain proof of work or blinded data.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans naming=site_url('docs/naming') -%}
|
||||
There are existing ways to refer to these large and ugly destinations by short
|
||||
and pretty names (e.g. "irc.duck.i2p"), but those techniques do not guarantee
|
||||
globally uniqueness (since they're stored locally in a database on each person's machine)
|
||||
and the current mechanism is not especially scalable nor secure (updates to the host list are
|
||||
managed using "subscriptions" to naming services).
|
||||
There may be some secure, human readable, scalable, and globally
|
||||
unique, naming system some day, but applications shouldn't depend upon it being in place,
|
||||
since there are those who don't think such a beast is possible.
|
||||
<a href="{{ naming }}">Further information on the naming system</a> is available.
|
||||
{%- endtrans %}</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>{% trans datagrams=site_url('docs/api/datagrams') -%}
|
||||
While most applications do not need to distinguish protocols and ports,
|
||||
I2P <em>does</em> support them. Complex applications may specify a protocol,
|
||||
from port, and to port, on a per-message basis, to multiplex traffic on
|
||||
a single destination.
|
||||
See the <a href="{{ datagrams }}">datagram page</a> for details.
|
||||
Simple applications operate by listening for "all protocols" on "all ports" of a destination.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('Anonymity and confidentiality') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
I2P has transparent end to end encryption
|
||||
and authentication for all data passed over the network - if Bob sends to Alice's destination,
|
||||
only Alice's destination can receive it, and if Bob is using the datagrams or streaming
|
||||
library, Alice knows for certain that Bob's destination is the one who sent the data.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Of course, I2P transparently anonymizes the
|
||||
data sent between Alice and Bob, but it does nothing to anonymize the content of what they
|
||||
send. For instance, if Alice sends Bob a form with her full name, government IDs, and
|
||||
credit card numbers, there is nothing I2P can do. As such, protocols and applications should
|
||||
keep in mind what information they are trying to protect and what information they are willing
|
||||
to expose.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('I2P datagrams can be up to several KB') }}</h3>
|
||||
|
||||
<p>{% trans datagrams=site_url('docs/api/datagrams') -%}
|
||||
Applications that use I2P datagrams (either raw or repliable ones) can essentially be thought
|
||||
of in terms of UDP - the datagrams are unordered, best effort, and connectionless - but unlike
|
||||
UDP, applications don't need to worry about MTU detection and can simply fire off large datagrams.
|
||||
While the upper limit is nominally 32 KB, the message is fragmented for transport, thus dropping
|
||||
the reliability of the whole. Datagrams over about 10 KB are not currently recommended.
|
||||
See the <a href="{{ datagrams }}">datagram page</a> for details.
|
||||
For many applications, 10 KB of data is sufficient for an
|
||||
entire request or response, allowing them to transparently operate in I2P as a UDP-like
|
||||
application without having to write fragmentation, resends, etc.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2 id="options">{{ _('Development options') }}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
There are several means of sending data over I2P, each with their own pros and cons.
|
||||
The streaming lib is the recommended interface, used by the majority of I2P applications.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('Streaming Lib') }}</h3>
|
||||
<p>{% trans streaming=site_url('docs/api/streaming') -%}
|
||||
The <a href="{{ streaming }}">full streaming library</a> is now the standard
|
||||
interface. It allows programming using TCP-like sockets, as explained in the <a href="#start.streaming">Streaming development guide</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>BOB</h3>
|
||||
<p>{% trans bob=site_url('docs/api/bob'), boburl=i2pconv('bob.i2p') -%}
|
||||
BOB is the <a href="{{ bob }}">Basic Open Bridge</a>,
|
||||
allowing an application in any language to make streaming connections
|
||||
to and from I2P. At this point in time it lacks UDP support, but UDP support
|
||||
is planned in the near future. BOB also contains several tools, such as
|
||||
destination key generation, and verification that an address conforms to
|
||||
I2P specifications. Up to date info and applications that use BOB can be
|
||||
found at this <a href="http://{{ boburl }}/">eepsite</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
|
||||
<h3>SAM, SAM V2, SAM V3</h3>
|
||||
|
||||
<p><i>{{ _('SAM is not recommended. SAM V2 is okay, SAM V3 is recommended.') }}</i></p>
|
||||
<p>{% trans sam=site_url('docs/api/sam') -%}
|
||||
SAM is the <a href="{{ sam }}">Simple Anonymous Messaging</a> protocol, allowing an
|
||||
application written in any language to talk to a SAM bridge through a plain TCP socket and have
|
||||
that bridge multiplex all of its I2P traffic, transparently coordinating the encryption/decryption
|
||||
and event based handling. SAM supports three styles of operation:
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
streams, for when Alice and Bob want to send data to each other reliably and in order
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
repliable datagrams, for when Alice wants to send Bob a message that Bob can reply to
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
raw datagrams, for when Alice wants to squeeze the most bandwidth and performance as possible,
|
||||
and Bob doesn't care whether the data's sender is authenticated or not (e.g. the data transferred
|
||||
is self authenticating)
|
||||
{%- endtrans %}</li>
|
||||
</ul>
|
||||
<p>{% trans -%}
|
||||
SAM V3 aims at the same goal as SAM and SAM V2, but does not require
|
||||
multiplexing/demultiplexing. Each I2P stream is handled by its own socket between the application
|
||||
and the SAM bridge. Besides, datagrams can be sent and received by the application through datagram
|
||||
communications with the SAM bridge.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans sam=site_url('docs/api/sam'), samv2=site_url('docs/api/samv2'), samv3=site_url('docs/api/samv3') -%}
|
||||
<a href="{{ samv2 }}">SAM V2</a> is a new version used by imule
|
||||
that fixes some of the problems in <a href="{{ sam }}">SAM</a>.
|
||||
<br />
|
||||
<a href="{{ samv3 }}">SAM V3</a> is used by imule since version 1.4.0.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>I2PTunnel</h3>
|
||||
<p>{% trans -%}
|
||||
The I2PTunnel application allows applications to build specific TCP-like tunnels to peers
|
||||
by creating either I2PTunnel 'client' applications (which listen on a specific port and connect
|
||||
to a specific I2P destination whenever a socket to that port is opened) or I2PTunnel 'server'
|
||||
applications (which listen to a specific I2P destination and whenever it gets a new I2P
|
||||
connection it outproxies to a specific TCP host/port). These streams are 8-bit clean, and are
|
||||
authenticated and secured through the same streaming library that SAM uses, but there is a
|
||||
nontrivial overhead involved with creating multiple unique I2PTunnel instances, since each have
|
||||
their own unique I2P destination and their own set of tunnels, keys, etc.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>SOCKS</h3>
|
||||
<p>{% trans -%}
|
||||
I2P supports a SOCKS V4 and V5 proxy.
|
||||
Outbound connections work well. Inbound (server) and UDP functionality may be incomplete
|
||||
and untested.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>Ministreaming</h3>
|
||||
<p><i>{{ _('Removed') }}</i></p>
|
||||
<p>{% trans -%}
|
||||
There used to be a simple "ministreaming" library,
|
||||
but now ministreaming.jar contains only the interfaces for the full streaming library.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('Datagrams') }}</h3>
|
||||
<p><i>{{ _('Recommended for UDP-like applications') }}</i></p>
|
||||
<p>{% trans datagrams=site_url('docs/spec/datagrams') -%}
|
||||
The <a href="{{ datagrams }}">Datagram library</a> allows sending UDP-like packets.
|
||||
It's possible to use:
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>{{ _('Repliable datagrams') }}</li>
|
||||
<li>{{ _('Raw datagrams') }}</li>
|
||||
</ul>
|
||||
|
||||
<h3>I2CP</h3>
|
||||
<p><i>{{ _('Not recommended') }}</i></p>
|
||||
<p>{% trans i2cp=site_url('docs/protocol/i2cp') -%}
|
||||
<a href="{{ i2cp }}">I2CP</a> itself is a language independent protocol, but to implement an I2CP library
|
||||
in something other than Java there is a significant amount of code to be written (encryption routines,
|
||||
object marshalling, asynchronous message handling, etc). While someone could write an I2CP library in
|
||||
C or something else, it would most likely be more useful to use the C SAM library instead.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{{ _('Web Applications') }}</h3>
|
||||
<p>{% trans -%}
|
||||
I2P comes with the Jetty webserver, and configuring to use the Apache server instead is straightforward.
|
||||
Any standard web app technology should work.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2 id="start">{{ _('Start developing - a simple guide') }}</h2>
|
||||
<p>{% trans -%}
|
||||
Developing using I2P requires a working I2P installation and a development environment of your own choice.
|
||||
If you are using Java, you can start development with the <a href="#start.streaming">streaming library</a> or datagram library.
|
||||
Using another programming language, SAM or BOB can be used.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3 id="start.streaming">{{ _('Developing with the streaming library') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
The following example shows how to create TCP-like client and server applications
|
||||
using the streaming library.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
This will require the following libraries in your classpath:
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>$I2P/lib/streaming.jar: {{ _('The streaming library itself') }}</li>
|
||||
<li>$I2P/lib/mstreaming.jar: {{ _('Factory and interfaces for the streaming library') }}</li>
|
||||
<li>$I2P/lib/i2p.jar: {{ _('Standard I2P classes, data structures, API, and utilities') }}</li>
|
||||
</ul>
|
||||
|
||||
<p>{% trans -%}
|
||||
Network communication requires the usage of I2P network sockets.
|
||||
To demonstrate this, we will create an application where a client can send text messages to a server,
|
||||
who will print the messages and send them back to the client. In other words, the server will function as an echo.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
We will start by initializing the server application. This requires getting an I2PSocketManager
|
||||
and creating an I2PServerSocket.
|
||||
We will not provide the I2PSocketManagerFactory with the saved keys for an existing Destination,
|
||||
so it will create a new Destination for us.
|
||||
So we will ask the I2PSocketManager for an I2PSession, so we can find out the Destination that
|
||||
was created, as we will need to copy and paste that information later so the client can connect to us.
|
||||
{%- endtrans %}</p>
|
||||
<div class="box">
|
||||
{% highlight lang='java' %}
|
||||
package i2p.echoserver;
|
||||
|
||||
import net.i2p.client.I2PSession;
|
||||
import net.i2p.client.streaming.I2PServerSocket;
|
||||
import net.i2p.client.streaming.I2PSocketManager;
|
||||
import net.i2p.client.streaming.I2PSocketManagerFactory;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//Initialize application
|
||||
I2PSocketManager manager = I2PSocketManagerFactory.createManager();
|
||||
I2PServerSocket serverSocket = manager.getServerSocket();
|
||||
I2PSession session = manager.getSession();
|
||||
//Print the base64 string, the regular string would look like garbage.
|
||||
System.out.println(session.getMyDestination().toBase64());
|
||||
//The additional main method code comes here...
|
||||
}
|
||||
|
||||
}
|
||||
{% endhighlight %}
|
||||
<p style="text-align:center">{{ _('Code example 1: initializing the server application.') }}</p>
|
||||
</div>
|
||||
<p>{% trans -%}
|
||||
Once we have an I2PServerSocket, we can create I2PSocket instances to accept connections from clients.
|
||||
In this example, we will create a single I2PSocket instance, that can only handle one client at a time.
|
||||
A real server would have to be able to handle multiple clients.
|
||||
To do this, multiple I2PSocket instances would have to be created, each in separate threads.
|
||||
Once we have created the I2PSocket instance, we read data, print it and send it back to the client.
|
||||
The bold code is the new code we add.
|
||||
{%- endtrans %}</p>
|
||||
<div class="box">
|
||||
{% highlight lang='java',
|
||||
hl_lines=[3,4,5,6,7,8,9,10,26,27,28,29,30,33,35,36,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,70] %}
|
||||
package i2p.echoserver;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.ConnectException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import net.i2p.I2PException;
|
||||
import net.i2p.client.streaming.I2PSocket;
|
||||
import net.i2p.util.I2PThread;
|
||||
|
||||
import net.i2p.client.I2PSession;
|
||||
import net.i2p.client.streaming.I2PServerSocket;
|
||||
import net.i2p.client.streaming.I2PSocketManager;
|
||||
import net.i2p.client.streaming.I2PSocketManagerFactory;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
I2PSocketManager manager = I2PSocketManagerFactory.createManager();
|
||||
I2PServerSocket serverSocket = manager.getServerSocket();
|
||||
I2PSession session = manager.getSession();
|
||||
//Print the base64 string, the regular string would look like garbage.
|
||||
System.out.println(session.getMyDestination().toBase64());
|
||||
|
||||
//Create socket to handle clients
|
||||
I2PThread t = new I2PThread(new ClientHandler(serverSocket));
|
||||
t.setName("clienthandler1");
|
||||
t.setDaemon(false);
|
||||
t.start();
|
||||
}
|
||||
|
||||
private static class ClientHandler implements Runnable {
|
||||
|
||||
public ClientHandler(I2PServerSocket socket) {
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
while(true) {
|
||||
try {
|
||||
I2PSocket sock = this.socket.accept();
|
||||
if(sock != null) {
|
||||
//Receive from clients
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
|
||||
//Send to clients
|
||||
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
|
||||
String line = br.readLine();
|
||||
if(line != null) {
|
||||
System.out.println("Received from client: " + line);
|
||||
bw.write(line);
|
||||
bw.flush(); //Flush to make sure everything got sent
|
||||
}
|
||||
sock.close();
|
||||
}
|
||||
} catch (I2PException ex) {
|
||||
System.out.println("General I2P exception!");
|
||||
} catch (ConnectException ex) {
|
||||
System.out.println("Error connecting!");
|
||||
} catch (SocketTimeoutException ex) {
|
||||
System.out.println("Timeout!");
|
||||
} catch (IOException ex) {
|
||||
System.out.println("General read/write-exception!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private I2PServerSocket socket;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
{% endhighlight %}
|
||||
<p style="text-align:center">{{ _('Code example 2: accepting connections from clients and handling messages.') }}</p>
|
||||
</div>
|
||||
|
||||
|
||||
<p>{% trans -%}
|
||||
When you run the above server code, it should print something like this (but without the line endings, it should just be
|
||||
one huge block of characters):
|
||||
{%- endtrans %}
|
||||
<pre id="start.streaming.destination">
|
||||
y17s~L3H9q5xuIyyynyWahAuj6Jeg5VC~Klu9YPquQvD4vlgzmxn4yy~5Z0zVvKJiS2Lk
|
||||
poPIcB3r9EbFYkz1mzzE3RYY~XFyPTaFQY8omDv49nltI2VCQ5cx7gAt~y4LdWqkyk3au
|
||||
6HdfYSLr45zxzWRGZnTXQay9HPuYcHysZHJP1lY28QsPz36DHr6IZ0vwMENQsnQ5rhq20
|
||||
jkB3iheYJeuO7MpL~1xrjgKzteirkCNHvXN8PjxNmxe-pj3QgOiow-R9rEYKyPAyGd2pe
|
||||
qMD-J12CGfB6MlnmH5qPHGdZ13bUuebHiyZ1jqSprWL-SVIPcynAxD2Uu85ynxnx31Fth
|
||||
nxFMk07vvggBrLM2Sw82pxNjKDbtO8reawe3cyksIXBBkuobOZdyOxp3NT~x6aLOxwkEq
|
||||
BOF6kbxV7NPRPnivbNekd1E1GUq08ltDPVMO1pKJuGMsFyZC4Q~osZ8nI59ryouXgn97Q
|
||||
5ZDEO8-Iazx50~yUQTRgLMOTC5hqnAAAA
|
||||
</pre>
|
||||
{% trans -%}
|
||||
This is the base64-representation of the server Destination. The client will need this string to reach the server.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Now, we will create the client application. Again, a number of steps are required for initialization.
|
||||
Again, we will need to start by getting an I2PSocketManager.
|
||||
We won't use an I2PSession and an I2PServerSocket this time.
|
||||
Instead, we will use the server Destination string to start our connection.
|
||||
We will ask the user for the Destination string, and create an I2PSocket using this string.
|
||||
Once we have an I2PSocket, we can start sending and receiving data to and from the server.
|
||||
{%- endtrans %}</p>
|
||||
<div class="box">
|
||||
{% highlight lang='java' %}
|
||||
package i2p.echoclient;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.net.ConnectException;
|
||||
import java.net.NoRouteToHostException;
|
||||
import net.i2p.I2PException;
|
||||
import net.i2p.client.streaming.I2PSocket;
|
||||
import net.i2p.client.streaming.I2PSocketManager;
|
||||
import net.i2p.client.streaming.I2PSocketManagerFactory;
|
||||
import net.i2p.data.DataFormatException;
|
||||
import net.i2p.data.Destination;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
I2PSocketManager manager = I2PSocketManagerFactory.createManager();
|
||||
System.out.println("Please enter a Destination:");
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
|
||||
String destinationString;
|
||||
try {
|
||||
destinationString = br.readLine();
|
||||
} catch (IOException ex) {
|
||||
System.out.println("Failed to get a Destination string.");
|
||||
return;
|
||||
}
|
||||
Destination destination;
|
||||
try {
|
||||
destination = new Destination(destinationString);
|
||||
} catch (DataFormatException ex) {
|
||||
System.out.println("Destination string incorrectly formatted.");
|
||||
return;
|
||||
}
|
||||
I2PSocket socket;
|
||||
try {
|
||||
socket = manager.connect(destination);
|
||||
} catch (I2PException ex) {
|
||||
System.out.println("General I2P exception occurred!");
|
||||
return;
|
||||
} catch (ConnectException ex) {
|
||||
System.out.println("Failed to connect!");
|
||||
return;
|
||||
} catch (NoRouteToHostException ex) {
|
||||
System.out.println("Couldn't find host!");
|
||||
return;
|
||||
} catch (InterruptedIOException ex) {
|
||||
System.out.println("Sending/receiving was interrupted!");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
//Write to server
|
||||
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
|
||||
bw.write("Hello I2P!\n");
|
||||
//Flush to make sure everything got sent
|
||||
bw.flush();
|
||||
//Read from server
|
||||
BufferedReader br2 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||
String s = null;
|
||||
while ((s = br2.readLine()) != null) {
|
||||
System.out.println("Received from server: " + s);
|
||||
}
|
||||
socket.close();
|
||||
} catch (IOException ex) {
|
||||
System.out.println("Error occurred while sending/receiving!");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
{% endhighlight %}
|
||||
<p style="text-align:center">{{ _('Code example 3: starting the client and connecting it to the server application.') }}</p>
|
||||
</div>
|
||||
<p>{% trans -%}
|
||||
Finally, you can run both the server and the client application.
|
||||
First, start the server application. It will print a Destination string (like shown <a href="#start.streaming.destination">above</a>).
|
||||
Next, start the client application. When it requests a Destination string, you can enter the string printed by the server.
|
||||
The client will then send 'Hello I2P!' (along with a newline) to the server, who will print the message and send it back to the client.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Congratulations, you have successfully communicated over I2P!
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('Existing Applications') }}</h2>
|
||||
<p>{% trans -%}
|
||||
Contact us if you would like to contribute.
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://{{ i2pconv('i2pbote.i2p') }}/">I2P-Bote</a> - contact HungryHobo
|
||||
</li><li>
|
||||
<a href="http://syndie.i2p2.de/">Syndie</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('www.imule.i2p') }}/">IMule</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('forum.i2p') }}/viewforum.php?f=25">I2Phex</a>
|
||||
</li></ul>
|
||||
<p>
|
||||
See also all the plugins on <a href="http://plugins.i2p/">plugins.i2p</a>,
|
||||
the applications and source code listed on <a href="http://echelon.i2p/">echelon.i2p</a>,
|
||||
and the application code hosted on <a href="http://git.repo.i2p/">git.repo.i2p</a>.
|
||||
</p><p>
|
||||
See also the bundled applications in the I2P distribution - SusiMail and I2PSnark.
|
||||
</p>
|
||||
|
||||
<h2>{{ _('Application Ideas') }}</h2>
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
NNTP server - there have been some in the past, none at the moment
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Jabber server - there have been some in the past, and there is one at the moment, with access to the public internet
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
PGP Key server and/or proxy
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Content Distribution / DHT applications - resurrect feedspace,
|
||||
port dijjer, look for alternatives
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Help out with <a href="http://syndie.i2p2.de/">Syndie</a> development
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Web-based applications - The sky is the limit for hosting web-server-based
|
||||
applications such as blogs, pastebins, storage, tracking, feeds, etc.
|
||||
Any web or CGI technology such as Perl, PHP, Python, or Ruby will work.
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Resurrect some old apps, several previously in the i2p source package -
|
||||
bogobot, pants, proxyscript, q, stasher, socks proxy, i2ping, feedspace
|
||||
{%- endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
{% endblock %}
|
417
i2p2www/pages/site/get-involved/develop/developers-keys.html
Normal file
417
i2p2www/pages/site/get-involved/develop/developers-keys.html
Normal file
@@ -0,0 +1,417 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}I2P Developer's MTN Keys{% endtrans %}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{{ _('MTN Keys') }}</h1>
|
||||
<p>{% trans -%}
|
||||
Monotone servers used by the I2P project require two types of keys to be used.
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>{% trans %}<a href="#commit">Commit Keys</a> to sign changes checked-in to the respository; and{% endtrans %}</li>
|
||||
<li>{% trans %}<a href="#transport">Transport Keys</a> to push changes to remote servers.{% endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
<p>{% trans monotone=site_url('get-involved/guides/monotone') -%}
|
||||
Everyone that uses Monotone to checkout the I2P codebase will need to
|
||||
<a href="{{ monotone }}#obtaining-and-deploying-developers-keys">import</a> the
|
||||
developer commit keys, but only Monotone <a href="{{ monotone }}#operating-a-monotone-server">
|
||||
server operators</a> will need to import the <a href="#transport">transport keys</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3 id="commit">{{ _('Developer Commit keys') }}</h3>
|
||||
<pre>
|
||||
[pubkey jrandom@i2p.net]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOLw05kZbux5KLdp
|
||||
rcGHeCTlyt+GjhGXh7Aups+QMD/FEbIVEFPGIBG2ju3069TKIHpXr5
|
||||
HEe5maBgtIJBM9NPVvMNFCgOSregmnVIpxSgHd+Wiu1Iyzhd0SxC5p
|
||||
CHdnwSjv051fctYcp1rs5OcUojUdvF7tq91zAAY+kLxpX6zQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey complication@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx1F6nwBUCIiCPVs
|
||||
ogy/h/+2d8X3uMcEdnRIN+gxO+0pK+yrGZiFwi7TG/K3PjDfJWuxsP
|
||||
RKLeb9Q4NmfxrAePelGig9llalrDnRkIcRFucnNUOJo9C0MjvzYR9D
|
||||
6bIS3+udPdl6ou94JX+ueo2jLXI1lGgtdWDWTetJx9I++EvwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey zzz@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtgaWY0Wc1c8pFGI
|
||||
xASZx78pHpHZKQV8z6IRQkgy65gQMjpLquaQpy3Xk8rkpnfA+6h3TS
|
||||
6bjplsEhlaQoxvpGxacRYOt+y1HC/n20O3RIE1A/e3sGKHGDEQW+3I
|
||||
tF4WSNfeQ18DzLeun32vFknq2k9im6Ts4tiYfKs8CZ5KW0/QIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey dev@welterde.de]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRnJUBY0d4310UpZ
|
||||
YGUlsWgxWHoD8bsKtTvGw83vwUQRtM2xPKxCHvEntg9Dgiqr5RurOK
|
||||
HK7Eak6WgxCXQFfC9ALr4SoC5abI4ZFvM/CAWRb547UIPTchSnuDUn
|
||||
/TSgDGqtGvMFS9t6OUp9Z/7QzIjLQhhBCqj4/hZhxUJ61XBwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey Oldaris@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/wN6IERnEJzL6X7
|
||||
UXpGwkf8DII5pFiGmpLyAphMK3zVUwJCFqEJWdOBpUa8hq6wmXCGVP
|
||||
aDZZ1K+M/6XNxNSR2JX/4+18EjOt8OWnMy1agpZo6dlRbBQyFUjlwz
|
||||
GbulGSo/pP/bY8S4KeTi6bzkkiUvvIKWKX8/53tZesgUg3KwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey sponge@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmKJfJ2KFI8BLYa0
|
||||
38oc2LNRCr44ardR6VIeEVY/RTKj62KbFKttU5nmTwBDEnKTkzjq+c
|
||||
M8jNKGDB2HbGF9em+FQFvf1tLYgtfV8ArkODdKrjhBpAoizbb0Gc5W
|
||||
5NDrV87X8mB352RBiJ/6Chy4pe3Bi5qRA3sBge2sVaD2uEPQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey dream@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTuU8WYdNydjKucb
|
||||
0E4Y+JD60AgHDU/9L0Tga1YA/JT1T2BDWLdYIh5uzf6XgzxFvFEx1F
|
||||
c2ZYRu+XwjMlM9NDHgkTUQwMT6NeGOUhB0e+ypxVxIp3iyNbAAGQsq
|
||||
iJR7/EDKN1AhfFMCXQSnl3OLSU9J2gfgqOIeeSabPOiVXpcwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey mathiasdm@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCo5hy9RZ9yQJ7jze
|
||||
u9IBTZ8kQA+APiUpsTBTHXYT1CGkeDddoll5sD97Vk4yWxLMu5BE/C
|
||||
rJKnZqrueblpgQ1xBsA04wzQlXKRJIv3W/woElRX23SFImlRo4/1Yl
|
||||
+ckUet7YnG0ryielCxvg3aQE5mbVi/igFx11vkhnJ8ajDgZwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey mkvore-commit@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5Q8Wz2Ag0RTpus1
|
||||
QKYHZwf1/MxxTV+jANXBUyKUFnIA+jgw7ltUEZ+nw9NTfEUrNGcgJn
|
||||
PtBwDqTtbbYYiRG2D2YXlIqTpdZl5tC+lbPeHV1tRjyGpvdlbPBepp
|
||||
xAdrROmt0MnXG8JZiDGLrsD4+CPnzClFdhwK/MMIv75iMpiwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey z3d@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYGyxsmalo1CNHnS
|
||||
Tx0e3TyAWcGw9zFuGj/scRg72/b3JRsY5rxedp5S+8EE2GrkUNGFBz
|
||||
K+OHhxuGqJVVBe+IqRNHKVHhibTG+PlMZ9llqxevhXAbXD3ZLES3//
|
||||
5u5UCZp0UDJNGp6WvykHSLg4YeF3SN0aBedHM46rGu/rCycQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey cervantes@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCryEmQRgq/fp1v17
|
||||
thtVmr6PQq7MS7TDNaklZTGbcDwh/29eCwajiWjPfjAAG6uXgi5rz7
|
||||
8U4M6GXHGZbwZ3uECXDn3XO+0lqMair/hs9Z2iPT3bk4kO7MvELKk8
|
||||
Cje3FvhpFxGrPkiipsFrm3vxK9wu1nsgIt4RefmvzE4GGO5wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey BlubMail@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxrz9mlNzwyQ8Jgq
|
||||
dhUZWZ0ZNOAcPS0aAsewR93jj4Sizq0L623cE5FNavoGa0FyC5Pei5
|
||||
rXOutgZ/q6tfj3ty8WVv67+zacPCLKnLiMHM5ZqnzdlTiUrvq95rE4
|
||||
z35zaeNaXL2HWK0AjJccG2+VMjaGpYWsqOBC4JXBlC+b37sQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey walking@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6p3gEkln5OtrXhn
|
||||
NgqNrUMMWm9qgIeYPceoasOWVbDYdaLVRcr6Zm/C89fYyCgC94Fyhe
|
||||
TTkmFx2p5AkUBR9uQP73YYVG6yBQZzcE3QLWqarxvISIkLIG9Y+a+Y
|
||||
jO8KPv9nZLOI0cPR9PzIO6KdhNQHOYF6cdGY/KQTW/qPVPcwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey neutron@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWkZsO+JevhpRyUJ
|
||||
mFc//7LDkXwUOyaN5Iy58Q6LlxL77OSe9xv6T6re/+GwTK29GobBlx
|
||||
nE891iMZrrz36RbVnmQhLELv2H+268nx4sgL8P+OLvTtQRiffabPlO
|
||||
0zYmVh0rF+JnCuopBzPuioJq7AzqQB1LY/qwY4HnVGnc5ecQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey HungryHobo@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClWkCeQRmzUOX4dI
|
||||
6Ug7gCFR9iIhKZZCNFsfu+xfPSWzLUuu/+UVxq/wFqQiI4iIsx6NzO
|
||||
Ag6QgyvUiIFrutasa8diNITnqxfJkA918W/v4iLLuB1ppy0Jaog0OK
|
||||
ttDrf7S/puZUNfi8PKDPEGdbGDZ2rLN3gRslnaKqSHlSO7xQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey russiansponsor@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDENEaXsL9AnH0lLt
|
||||
JzMVfz4u6sck+TLXJjijZr61BJAvIQhaGwnGBkzA9Cn/yUaFUF7L+/
|
||||
eFBHRkaYFQ6ITfOXioKq07UAJyKO7X+mTIaBUNy/if7DY+cRmCUBhJ
|
||||
XU7EitmCJdu9Pqteo74Icpw7dhYUuhg9R2oD5BIxJGGdzfrwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey echelon@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/oVMwyzMaSsH2WF
|
||||
gl209ZZn1TMGYo6SDBn3aI7Ohw5iIujBWX6D+p74iTkrlL1JOjmI2+
|
||||
nvStbCFbKcm4VxFQFrJ3DydrRGCmmRNhm8tKewei36sdhXzbAzxDTq
|
||||
BZOpmNL/TYQtpRgozKHmmix8yDgncva0TWSOjUmHRArXfAiQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey forget@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfQR7tQMh4xGCq0R
|
||||
9BXQ0HnYbEZYnf+aprSuEfy3ji3x7VFwJ/TkfGDhNgrHh2/uBQ+P7y
|
||||
1OFygEPalOkIc2FwJ51yWMac/YnQWPNTo3mtr6V7NfnC7UnForkJyI
|
||||
iLNhi0kVfm9719W391byclB/9t7O6ZYynO1qXRuco5e8jI7QIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey privateer@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrUQmgzVrk0cO85H
|
||||
CefU5ZHAOZeauLL4gXjRcEpYqtLA1XxDmqYDupfLc/SWxmN4ElIb8h
|
||||
GN048REUGk6umzbGQvUK6z62mHigF2JeqMbgwxzzIPk7K26gncmadT
|
||||
6+0B3TBsUW7A6KeoCKdID2IL6CqB3qGyFLkRtY10G23zHOCQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey duck@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwmWqF56heG7WQb2
|
||||
mrGqv6GuMDXhS/Lu2DZDAIvZGHYNyWBO4x3Lis48A0jHZDSqYzIqyE
|
||||
J+BFwg4AjvOiPziEbD8SJ6/pCAfIZpk6E8lExZn6VhypIDIJMmH/bq
|
||||
BK31bC++XaWp34v9xc9tZRKJiYmhRb6EVA/IapG8A/t+TQVwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey m1xxy@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/aaFUq37RQdJpMC
|
||||
8aacqYLdd88wNVjwI+4HY5d7a61HvYIAecg1KJlq/CDFFrygmCcusn
|
||||
FaBmmBQFLO+gJXPKi9PMo1vaENiqCTVfY4EUpMMYzpuqKMKjyfuT6e
|
||||
oOHCZEKfZosUowyJt61FsTzGu+B9y27d0jxXwXT/fml100EwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey hiddenz@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnpEeIignM2UUsJT
|
||||
9+hSMcVOUuf0PZTxi9G3zRhDjal8Qdy/NUZQELAc6/gBhnZcSP4BHp
|
||||
/0BTTxXthlTjko8nkwx+EgzQO425Vgb1v/7RneCqEDjMP6QyZUOn1H
|
||||
i2UBw+jvnbjFk1wDqt9BPdAKITfp3l7bR1xGr4gs1M4MSrcwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey dev@robertfoss.se]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDW/j5vyMJLTI2YoZ
|
||||
emcSETQI6FW2kq2CQuA6UU2vjhIlqIITBHCjgTpjIocpKxodHrR20j
|
||||
1aGWh3SoGdFa79NLLZvVH8h1cjYmBhDWTvrlefH94v74+TnL+Z9oUN
|
||||
oJ4nWsFD66vB76i9e/MsI1CcarQmRrf4HjLYGm+ME4oJMyNQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey hamada@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmBYkINIl+HDcdPz
|
||||
bID2zmd309oe6XX2EmVdngTn6mgXVh5G47Wx2y6V8XMYFMsTQOUBba
|
||||
PAIzAKOlQ7O1lOb8HDXYf42iO4IG0QH0XV8eZUugYumtomtAu8qCUy
|
||||
3/ux1+xmFJQ0CbU9178EDqZsz/EaH1xfkkh4XJ3TXtvcEBZQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey magma@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkwYsTheWK9/gwS0
|
||||
Aoz0PQZD/I428ZAFmdZfZNNSyVgV9EHopHgATIJr6gi+UYhem1hwiQ
|
||||
2J8G7/ZCptwT8syFRKuj/CIyeUPEALCNGrWaWrVVBoBS5VNHkS0Nq0
|
||||
1pT7I2K+y52vvMMyE1O/4BTkA35mvTL0wA80zRuZ199eOUsQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey kytv@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMMTHQs4AQ0KuXjH
|
||||
sPRvfeBo2EydIAcGcBH7VCO26AofX2ns3ezTKfvmv6QcFhcxn41I6O
|
||||
dG29DdFVRz4D8hIZvOoFYfe87nswgyXW85rEilJP02Z8HCr/dcYJbP
|
||||
sWAlMr7/UIDsT/9swd0U6QTf9X2W+VORyhDdYXcG8zikBqXQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey str4d@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe4zkWVW8fBXGtnM
|
||||
pWbw316qbxWhKdnM86bnPyU3a8C2ERaofESzoZPXm21BR4jEqHLFzV
|
||||
zni4MTAJ+J0XjW70Le5DZTm/AG18qXd8UsK2+IreCHqnv5XPL8Lw8o
|
||||
Y6zNoT834emGqH2n0T98OHF6zNUStBrvuv9AFPa6FZocF2mwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey meeh@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCXk4uuZsnO+JhSd
|
||||
8MVUxJh9aSHde0dPxHOgWgcfdrcH1crn5SPhTFQVe2ZY7HuwbQPDb3
|
||||
ZAQSLNx4odZpC0U6s6wejJgWwGl3h232aMU/LO3qAXtjOzpt1HNg7x
|
||||
Wcw2E10Ag1K6qLpxs3TJy3BEJvPIghUMeWbfE5XbaUgkbuFQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey ReturningNovice@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCucT9GhzRqr2l1Uh
|
||||
ifcwYRHjSZWAf1XXtu6EEsA5p9DTg2tOiN+SCuRe3QpMVU2er4YQOU
|
||||
CFhd0htyCw/l2/syEPeObx78Yf2pCnAIYAsapCa0kNQzlb4FB637Ql
|
||||
AmEGcRv0PjbW6USV41EWMad0RFWmq8SBkuZxbwpn33bUNkXQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey zab@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0H8bP/f8v7KjnyG
|
||||
lZGWQsF5G3ppvJ1Kwt/dUGi7gHbclKPnFAWXmb7YWOhl9Ua2USjQ4Y
|
||||
rIeB7/2uVOpe+3FrFgUzIiWsx6I2yiNI3TscDvQsa5wG0Z2G4BbHXj
|
||||
ONyiUzzO+j2TWPs3x35r2LCy8plRzPAswCF1GaIEjJCce5zwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey zab2@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLabJXvbBfHZ4zH2
|
||||
kom+W2Kb3kYYs58j8ZygkK9rj8j2SrlokxLiLABVYK7tdlb1zgZJVY
|
||||
gO8flnqsOSGb2CtoQ3i3Fqk0HNq2if47LVyaLwgOyoPOhYkDDGr9Wg
|
||||
gBp+svAHALMoGvh0lemKQZpQfdMgZ33k2l2o3Udvj3tpB/KwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey digit@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAo+xF9MoHp2S4T/
|
||||
smvUtDL7Qcjis5LyqDYELo/IqER5Nn4CNNA9SCrBKm6nlzDjAj7X8J
|
||||
zbTTvOT9WqTzwHrWjNcG4rAWsG22kbvtlujy3sbgO7VckQolzm+psM
|
||||
mySqVwAzOZm9ShSxBeb99oULNQwRaW+QrGiB2mBFeCnY1kywIDAQAB
|
||||
[end]
|
||||
|
||||
</pre>
|
||||
<h3 id="transport">{{ _('Developer Transport Keys') }}</h3>
|
||||
<p>{% trans monotone=site_url('get-involved/guides/monotone') -%}
|
||||
<b>Note:</b> Transport keys are only needed for setting up a
|
||||
<a href="{{ monotone }}#operating-a-monotone-server">Monotone server</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre>
|
||||
[pubkey zzz-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa2uZI1BobxS4Tap
|
||||
Mqmf4Ws3nyL3GYgkfbMEawyWl0E1pfHJ4dLZkdxQdcLyCsN9OCY4jR
|
||||
NzmoYnDa2HtBLINq15BJmGJ0cfIDLXIB2GBOViAPRkEKQTVoc7Ipcj
|
||||
tPPjtSBVganD/AW78m9cgUYag86Lbm2ynUaXWpw9i4gpLdLQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey transport@welterde.de]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCujyq15a7t0Gki/s
|
||||
KoZQbv7CHJWbT3YB5ODQyU3zfqXnHNj82tz6wVsvjZmKUYZvax7wLL
|
||||
RErMGX3PTGxb23I5iypLmYtWt+lbkxMZdcGTGEXBU8JnAfhnSIdLzB
|
||||
J2soe55vBQp0Tx1Ta+7/CNYwVPUxr5l6J/2gcGFJg3cAD99wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey complication-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP55FmBUIZjamtDi
|
||||
nVDrLmS9uU40KoNfLdiB+t/iEgEWHDPQxlwugh/aBQwsXKGGJMJSNU
|
||||
RKwwjfrcr5y3oz9jpRjtLVqoZMBVLgp28WGA9KbzXi4/dYhdyNmr4g
|
||||
Hc17mDSlhCfk/L5QxifSYwSaeeFPsoAAyBBB221Z3197bmVQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey dream-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXpVjyvfxmLhjWZN
|
||||
HHroRMlvnNjz0jI0JfhsZIDk3KqS6H/2yfxJDm6t3/ODyl6AXYzVrP
|
||||
0oi90uE2nqNfSJVB3Csm6Jl4z64GXhovAXHCY/g0XS0obUV6bUFRph
|
||||
4iXy5IrjV2JnVTGJYW9PDjHOyXz8idpnauJ2t56QpHZSQpZQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey kytv-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD4secxbkqqBtmAYx
|
||||
IChXrgmaq+aueIJ9hVZVdYqEj+QwpMwNrVmsfZkq4J3F7KYwsDwFq+
|
||||
lBMt8rweXddnUhA2jhGbZ6frFGXB9SXhU9QazvojksLJ8wOTKj++fR
|
||||
fBBzpGgAlq3VvCPgwM0/j6DD+Lj2T88zmW0zZfQJPmr/Hz2QIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey f-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6KwEmazpoBtcEBQ
|
||||
Ei1Cu1T4VimDXHUD+shpiLOirVCZFBX+gXy4KYFcLuaFzBvYXMk6zF
|
||||
HYBKt6sbIvxrl9g1yy6W367uvayeuwd8+gT2D5tYfjc0KdFM5UmILO
|
||||
g4fScp0eurAPBowg66xG4kIylISkRmNGWHlecs9sH2cVf8OQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey ampernand@gmail.com]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJfmtEanQ07lbTVu
|
||||
29xXX8R+FWWo7YzKUpRmcdnyjYaQgRbyCR+Y83z9nK+J5ZQXEwr12U
|
||||
2zfJpzohWlEyvpJuFvzv6aiiZRvLXXwZj6LL5TYUva48MUSg1GqytT
|
||||
6l8mu4ypF/uc3OAcY/quBmlqD1JAwKhBvwCvNpWHMTj20y3wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey meeh-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNm8aGdaHM5S4CbH
|
||||
GerEYH8Ch4sp10YuEweUr0G8eAIP8NqC90OvNwp1QkoFQ4kQsQVJbF
|
||||
LQdwfLze2N7KstigSl87YV7RWqn9GX+VYIQ/HCFnmyGPkJSmvs3OA/
|
||||
JQE8u+wqSYuLphzJF//+YAMYWW0hlMhU9hB0Sr2MRjA6yVIwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey sponge-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQttmzW0G38zUNz7
|
||||
J6cdqDC3d+dzw7Xjwup3DXWLMVUkrsl1ASMx8pP58LI29zyBVmXfYe
|
||||
pHpwKivCkR4p3XSMYy5zi/cxVlsG/kRH1irvMm5opDdqqi2lvgpn0i
|
||||
KHx3/DPaXvroi+KeF7m4L9Y8h1BYEehLxVZr9IVdyxFRaA5wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey anarkia-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFJ7GNuwu2xxghKJ
|
||||
BHmog1UbA2tzM5gjbWYZRGdpADbaejCBJRFcWRh/OXSxk17lH96bYl
|
||||
yPxAX7sZbtm/yxNdMb+zcjalj4OUIJ1lU3TeMT54agb9r/e2w5cRrs
|
||||
oJ6bY2wPHVUzhDC5vbU6yM6tfbMil7JWZ5ndko1Uuq1TJPaQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey ReturningNovice-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsQE/oxAVXXKx5bf
|
||||
lc2LV1yUP8GAur30w1DseR3Cf19TzMCBTgXVNESjJZntxs1ozG3Bce
|
||||
+dbTFsxVb63UMC0RngA27sWR/2K1HOEKlIWXG/ajnx5yMwT6GdxS/w
|
||||
v2UOXbmR8IP6buK6fsMzEDGUlVU2Aajt3ovPAE7xwYApE6rwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey echelon-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEVlT4Y2IpJU/s8e
|
||||
vqKZxCii1OG+FGHh8sNVdaM830P2ymOf6z4G+TAcp9vsz8lKVSg8O0
|
||||
T5Hpxuujr/suYVBgsqRT6iGqkPw6ElmdNFp0DhJBRI851u+b3/yeQv
|
||||
0YGABkZ0AlSNIssjQFxaynGRLnjvYbcnVEJ++a44jILwiqbQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey thelastcode-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWYhkspKLVuyn1i8
|
||||
/h++Lf9gn3GMd0VF6o15PFqFisQC7M4T5rvCJZby414HemsllhDuA+
|
||||
NbP4hPB6AU+vSMSv8S5GN/b92iz7dC3lNue4huUf+hDBzETRtYAtGD
|
||||
85ttMEBjgGMY4AGTGhI6JOYbAUlDUgUzIhjypNEgeQ9f5kCwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey monotone@killyourtv.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkX25gOPJkcf9LpB
|
||||
rd8vAqoLQItcT5FYJmzNYk5V6K1dCvT7qltVDvmbZ+jDeEirP9rYLu
|
||||
oHcDakfjEAbcwr0UyXIu4BV1Ib++3qM+kkM/NrOTbtFNZp5h5Zs8fh
|
||||
cXtrD4HkCM1fxgqwFP8M6l5cm+Z3w2MkZUoN7mJu7F95+obQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey JULIET-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDghepfaUmWTI7mM5
|
||||
Ytyawi7DaKAY1QJgQd4cE86WpOwQVCIrr5pKmQg+XLqTl4UwkjnKlE
|
||||
ZL3XU/DY8yQ1F74/P1w6EoTTm7EvA5WDrQhj3RiKeeSrhTUzi+gRLE
|
||||
4JmzqKv0Z9m0UJinNMdYck14bhXyJYheMqofr3Z7sB+LVtcwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey monotone@bilbo.srv.welterde.de]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDiqrTjNhYPus8ZOO
|
||||
GOAHuBrfxtKijVNs1NHwggHjeHEbpwQSmQ2uijyl+H3B3A7ErKwaPu
|
||||
J96SUlZv2LbfwkeFFU523FfvBJrUZgRLLhpWvYQWHlC+rIVcnOy9Ci
|
||||
aFexjw4QOrG9Hf9UAMEEissmea50jldEyiyLF8UXgemoESUwIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey asaf-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7zJ4ozJPSXmlUJ+
|
||||
ej8euN7qMo1kwXs++6EP/k1chkhAUUNokF8QAK3CXRCuPuVk0x6amn
|
||||
Pnay0fQf0aUANIKHtxxE2LEf9Jt2AD8FuDjsKcOxAUbZlWeY4W54H5
|
||||
ty937NL5Tn7GUrURpcUvNbs7h9ZlSMpmzZnguFjuXnL67s3wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey luminosus-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1Qz/jUeOfzT+ZNm
|
||||
53INSMm4XUGAjXS+0DDnp2XeKgDkvQzMnjOy/+wSaBB+AJ71CM7/2K
|
||||
u0TN/SZhJUx/AvP/WBKL4rvLkdmVS8MDGjpmk+ErD5d9U/27+xw6wP
|
||||
MIDi4WGmTyjLS5nYHcrQa7SjW3xGQuyfWJXa2RuRMMtmum3wIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey zab-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI/VD0KtrPPaCSQ
|
||||
PHse4p53ze5yi/0CePfbh1YXTJieUzCGpD76IjlpRB8sRYIevWGglO
|
||||
jac6fhAA97VMlSmZHIxtBw3U4Y7kTkdZcsgkKTa756ge5UeURVmBaU
|
||||
Zevb8DDRREUQ3ELt6bit9iQhOvsAeUNiB1IVmRRBXrYIQhSQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey anarkon-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBZVg1jgWAWLn/6y
|
||||
C9zd4OqFuSNiWDH9hVA0kWNJvdhylp7bCP6Pd2mgNesyV1K9girW1M
|
||||
2r300Csm5v7kff8/ct3ef5HyoBMn2Ex8SgAmir2Pjgc6lFsn3I8hOv
|
||||
FAkUwH1CFtg6sjKUJMJQJbisfPmnhu20Ptf6VXaQtaG/JgCQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey str4d-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNrBX5L+Ptk76Pdd
|
||||
0Eku+a/hOhQioS2TQnxEaabkcIQrXWE8oeuYSby3+XgYkQrr3mML/1
|
||||
C4cxYbWBxXN/XK39V5tc1z3Ngsk75OFS7SFPxRF875dwoHGnNlIXBZ
|
||||
NAeZBQ+zlStljDkvaWD1qYI9MvYklEBetL2dNc86sRnM2DMQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey dg2-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYEQ8kziAnYDCxgR
|
||||
I2CzDAkmI1ZJgEwZxGm3Dn/Jj7aNjXsJQeWDe4VSwVvtJdzwbrp3qm
|
||||
GBapx3KtetESkPtq6BVL2j5qXP3rQ2QP4nOFh05DcuiO7D+uqHpLIb
|
||||
tPXStQO9WfFgCzXRMvpCkX4OdnoRGgFkiIZHQJxT+ATLtNwQIDAQAB
|
||||
[end]
|
||||
|
||||
[pubkey zab2-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmh9ukHhxTY3/bDs
|
||||
At7mOUETxO3sLrf70kR9Mn4p44c4NKuFF4APmeYaFfIP9N5ZkBxY+5
|
||||
2YPCQNXdtLDAPpxrq9as+IOaxH3ZVENllml0iCuGjZWtvYVkxHXCKo
|
||||
hMMlffgZFJeDIEEed3eIttUPsIdW8U+2XQM1zF9R77+K0ZJQIDAQAB
|
||||
[end]
|
||||
|
||||
</pre>
|
||||
|
||||
{% endblock %}
|
797
i2p2www/pages/site/get-involved/develop/license-agreements.html
Normal file
797
i2p2www/pages/site/get-involved/develop/license-agreements.html
Normal file
@@ -0,0 +1,797 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('License Agreements') }}{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans licenses=site_url('get-involved/develop/licenses') -%}
|
||||
For more information see <a href="{{ licenses }}">the licenses page</a>.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Following is a monotonerc file defining the current trust list.
|
||||
Developers must use this file in ~/.monotone/monotonerc or
|
||||
_MTN/montonerc in their i2p.i2p workspace.
|
||||
{%- endtrans %}
|
||||
|
||||
{% include "include/monotonerc.html" %}
|
||||
|
||||
</p>
|
||||
<p>{{ _('Agreements') }}:
|
||||
<pre>
|
||||
|
||||
Complication:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFHyXwu+h38a3n8zjMRAjeSAJ9MFx/ENbUu8+3/U7KTj+FGL/NkHQCdE38G
|
||||
IWV1Gaqcis9sFEW7Nh0hY+c=
|
||||
=WPeP
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
zzz:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I affirm that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFHyaYXQVV2uqduC+0RAhn4AJ40JO/ep1JhmghjPU/IeISIa2fY8ACgiuV0
|
||||
vOCHNLZ8kiXKc8cTzYHGnU0=
|
||||
=ZzDd
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
welterde:
|
||||
Received by zzz 2008-02-16, need to put clearsigned version here.
|
||||
|
||||
|
||||
Oldaris:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
Oldaris, 2008.07.15
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFIfQjqzZzOariGyHgRAgR3AKCBFidvx7u1xp1UcNPZSX4VcHMQmwCg0zos
|
||||
IfrFyqSeeuhGoGVoq8godnY=
|
||||
=GSEI
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
Sponge:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code they commit under the terms I am committing it
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iJwEAQECAAYFAkjc2NsACgkQEGXqrGArRL24pQQAheyOBJiLU4wtbXFL5kVny3PZ
|
||||
W8syAlzBC4sbOm3PkG9YLWh38Lnl+JPvVklRHJbpjRLEfwx6VwEiJRfZB6u+X7x/
|
||||
qRwzjH6HYjz+tX3OAcj0MYH7yr09DLaJ26171X08BXoNpYuu4WWkXx8QnfgvZKVF
|
||||
TeTxhTBL/iWBPKCF2Tk=
|
||||
=+5bk
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
Dream:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkmDVuwACgkQ9BQnlhdx/DlVugCePaRdhpg3qiOyQ71HeiGxT528
|
||||
RmsAoLyxOkGxHn9FO+BGMabzeLAq2vV3
|
||||
=Cqfg
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
MOSFET:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to any code I contribute to the I2P and Syndie projects,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkmFAWcACgkQZ6SDODlcTO04JgCdGy4duWKRaTWkEdq8GW1ukOkU
|
||||
+YAAn1Ch68XJZqLfXqJU3igcRjWbapD1
|
||||
=64sn
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
mkvore:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAknVxdQACgkQUbTVRUoTVGhKUQCfWs3bw+fo0wqbKcURotncsfsA
|
||||
uJgAnjnImkb5iEDp5vCccQO4PDGYp2+u
|
||||
=0iW6
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
Mathiasdm:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAknYaiwACgkQSgosdkktX9aE1gCgsQhfzyHhSLWrRsDfCz+HaITD
|
||||
ApkAn2RjN+wpldf52Ur2nTVSvpLiHcik
|
||||
=Znrk
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
dr|z3d:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I, dr|z3d, do solemnly agree that, in respect of the Invisible Internet Project (I2P):
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (MingW32)
|
||||
|
||||
iEYEARECAAYFAkpN+Q4ACgkQ00a8KJajPMJdjQCfWBovGyOKbZkvL47+FNX5s+14
|
||||
f3QAnAkcOZYQ6rbPG8N8orH7+BMGvfPf
|
||||
=UxMM
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
cervantes:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.11 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkpa5VUACgkQxQxxfQtaKXwKcwCgm8yLYdv+VtjS+1P89U4zQxL4
|
||||
IowAoIghIIWdMs3oMJpGAXfXTqpjRwXJ
|
||||
=lNJP
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
blub (BlubMail@mail.i2p):
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
1. Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
2. If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
3. I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
One warning about 3:
|
||||
German law applies for me and in german law the concept of "public domain" doesn't exist. Its also not possible to waive all rights to the extent the "public domain" concept (as understood in the US) requires (for the ones speaking german: see for example http://de.wikipedia.org/wiki/Public_domain and http://dejure.org/gesetze/UrhG/29.html). IANAL, but I would guess that this is relevant when I commit code, even if I2P isn't a german project.
|
||||
|
||||
I don't really care about legal issues but since the whole point of me signing this seems to be avoiding legal issues and/or uncertainty which code has which license and similiar issues, I thought I should say this. If you don't care, ignore it. :)
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkqjRpgACgkQD9YhRSUxPSd74wCdEIHUauSInrfmhXlcx3t5pwrh
|
||||
9RQAoNy6BW1qSSGhu+Jd2EQ8fQOoO13q
|
||||
=LG0S
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
walking:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I agree that, in respect of the Invisible Internet Project (I2P):
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.10 (MingW32)
|
||||
|
||||
iQEcBAEBAgAGBQJK3xwEAAoJELST8RRG8p88DQsH/2cMRMtDiaYKNF+fQvdSKuQI
|
||||
igqRJnnIr/g5s8alfikRhm6MqR/q/vsWVfQlKs+KwL+15OKPjJJtxahp/CsWu5ZX
|
||||
edHZv4nKGuSB7FvUoy0Lz6LRlu0HgZl7nli6YNVYbfbAQ1QbPY3wbvRxkLyHy1Zm
|
||||
kB1XyfzOvA9gpu6r3NLUR8a5mhDUbOtNR8IxoNC/Z1ogsf1c5kzbz0ncHPiV1wMx
|
||||
WZYIJ6vaa0BzJcEi2BDQWsPasEoMlGiK1+WXrjTq4lYcJYu+xrNFh+ofbRYqYhaf
|
||||
3sGSCgK6abMlQeoO1aO5uo6CRI/Yvrfp5G5y7S/yDOq03glK3RnPAYlmc3s6VLY=
|
||||
=i/D9
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
neutron:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Hi zzz,
|
||||
|
||||
I agree to the following :
|
||||
|
||||
- - Unless marked otherwise, all code I commit is implicitly licensed
|
||||
under the component's primary license
|
||||
- - If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
- - I have the right to release the code they commit under the terms I
|
||||
am committing it
|
||||
|
||||
Neutron
|
||||
- --
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.11 (GNU/Linux)
|
||||
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
|
||||
|
||||
iEYEARECAAYFAkr3D7MACgkQDkulOvK9/Uww+ACeJ/ILV87A7AtRqJI78MutKlxr
|
||||
IpYAn0MXlHOB9aA7aR07Kj95pvF8A6wv
|
||||
=AUjh
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
HungryHobo:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it.
|
||||
|
||||
HungryHobo, 11-3-2009
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkrxDEMACgkQHix7YXbc3BL+GACdGH9r4WWqnZS4ZHdvhq2kEgEH
|
||||
FQYAn3gMHNDEBh6YD8KBK4UT/v89PRmy
|
||||
=EXov
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
russiansponsor:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAksZr28ACgkQg9RXHZerbBDNqACfa1EHKmqFbX0F3MOaAqln9NMX
|
||||
JcYAn2dmuA6/jdJW7VikLQbNrKasqG6a
|
||||
=WsTC
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
echelon:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAksaywwACgkQXE9k4qzN3VNuIwCcDR2NL7aVAs+DftvFkoqy9Bnx
|
||||
7zUAn3PYwfChW0MYdX2EsxV/DCHgk7y0
|
||||
=HEKB
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
4get:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed
|
||||
under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit under the terms I am
|
||||
committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iEYEARECAAYFAkseTgMACgkQSH2S/jaH2VEYeACgsPSxEXAxWfyQ3/qNpJhbBTlh
|
||||
Q/QAn3tS6UisuXPCFDh9N4BxcscjSD+5
|
||||
=6DAb
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
duck:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed
|
||||
under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit under the terms I am
|
||||
committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkulRM8ACgkQHV6vOQfY4WwZswCfTjd7ktLjgqXPL7gvt6z2dxTQ
|
||||
aFAAoJn1aPHVbMw/9FmkTmPSruVFs8V1
|
||||
=bgCE
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
privateer:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEARECAAYFAkwKdKoACgkQTo2HeGooF8zClwCfVh8uaCHNP4MQwrB1egFKO40j
|
||||
aqEAn3zAoSf0hCbTU/A489RKeQ6DA6GM
|
||||
=mA0j
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
m1xxy:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I, mixxy/m1xxy, hereby state that:
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it.
|
||||
* The following is my monotone signing key:
|
||||
|
||||
c9b970f5e8917eada663d4c6b22096617021c95c m1xxy@mail.i2p
|
||||
|
||||
[pubkey m1xxy@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/aaFUq37RQdJpMC8aacqYLdd88wNVjwI+4HY5d7a61HvYIAecg1KJlq/CDFFrygmCcusnFaBmmBQFLO+gJXPKi9PMo1vaENiqCTVfY4EUpMMYzpuqKMKjyfuT6eoOHCZEKfZosUowyJt61FsTzGu+B9y27d0jxXwXT/fml100EwIDAQAB
|
||||
[end]
|
||||
|
||||
mixxy
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.10 (GNU/Linux)
|
||||
|
||||
iQIcBAEBAgAGBQJM1gjUAAoJECDrk8/2C++w+WwP/1GLBHpTGYiDO/zfqECgVRu2
|
||||
S+qxTdEWcJyfz1MY8tJ9vMIhlr66jxveI1KZ4sNUln91yPR2KDgMrBa31wL8IHAz
|
||||
T4uj7paMt8zLtptMbn2nGqdl/X3fmGloDQvW/VB0MWj3YpBgxXiMfEf3Mv9BcnV4
|
||||
B6IUvnXAWVe86Dlon1KLoQjAB3hjiGZV0vUV8sjEOYxX/qztLAfP1FPHCRdKlNYY
|
||||
hb2zNdRTHlCF+CKdZ+TX4HB7qlsjYUbhRJhh2pN2Rwz/2w/CddwXQ4jaKjCkn5T9
|
||||
D5Ekz4/b68doGq1hhjTf/GZ1FqVt+gkYr8MYPGZP5oJ6O4X5yPc3QhRy5cMlERSj
|
||||
S5+lXB/nM09w5bScHtdfHauxUI/vWOdF78BzCJHhOBBHZ/jrsV2iX6QDaf+X/FbT
|
||||
64SWXTa4jzQeE7MafF9Bkex1rWGJiom5Ew4NG73e1GyGtkwvRV6j5H3AKvpgRJzG
|
||||
G7W3/7MSZjNP7aIs2+BqYe9YveV0GCzC0l0lhIHvKNzRv6Avvvx7krORMQZqSt1k
|
||||
lVPIAUyoW+ScB+E26dVpRFne/0q9yUcQOeKyqehGCEFtgqQCqLsdTHynxayp58bJ
|
||||
lccrgLY+pzPpNg5w/5kJFm70ih9MOHRdRik9TiGvj56tzLUEPrD7WeMzl4mkeg0Y
|
||||
2WPghzlpoV5C1SJkv+dR
|
||||
=YLVN
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
hiddenz:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I, hiddenz/anon8373/slow, hereby state that:
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it.
|
||||
* The following is my monotone signing key:
|
||||
|
||||
[pubkey hiddenz@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnpEeIignM2UUsJT9+hSMcVOUuf0PZTxi9G3zRhDjal8Qdy/NUZQELAc6/gBhnZcSP4BHp/0BTTxXthlTjko8nkwx+EgzQO425Vgb1v/7RneCqEDjMP6QyZUOn1Hi2UBw+jvnbjFk1wDqt9BPdAKITfp3l7bR1xGr4gs1M4MSrcwIDAQAB
|
||||
[end]
|
||||
|
||||
hiddenz
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
iQEcBAEBAgAGBQJM3u7uAAoJEFp3lNknxN+16HoIAMNYVELPBHOM4iqO1lWeFqmK
|
||||
mSw/+eME05KvboZUq9SsJjInUkxlbfDWHf/DuUlCnTPePuQY+wTQPOa18ncldG0y
|
||||
bgO71WnCSyIydrw8dIUtMBfvVzcSP4c5h0ty10Dw+YxdKL2TLTIw4JuqYCPhE4cm
|
||||
1IqBfHT5or7A2ahCXLkUt2YX9NW9SAl8xUs+/g5rzc42EAgh656JK83G7kA38UID
|
||||
nn6ZA+A/3hrTe1+lJ0yHa6sCnJGJ6+tdJlLzjeU6K34cRPCcn2sPO9LUlM6VHVga
|
||||
AkTEFPvxhJC9yJ4cgIJ5AlrcF8B4Ufb0gsfsEfebAl1puA0C/MRxywTSjZTTB3k=
|
||||
=UDcv
|
||||
|
||||
|
||||
hottuna:
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
hottuna:
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit
|
||||
is implicitly licensed under the component's primary license
|
||||
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
|
||||
* I have the right to release the code I commit
|
||||
under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.16 (MingW32)
|
||||
|
||||
iQGcBAEBAgAGBQJNKd3GAAoJEBVx72WXYlXhZjEL/3miyEMtggiJF73UJ26qLyAp
|
||||
9vFqoztcCHZTdDS3jpXaDY3v2WnfT6bB3eQjrFYkwDO8UpVqjdCnPUhs/sqHg0eX
|
||||
eqesy6IqDhluxJTO3vlvgBJVh449/g1P15hOQ1aR3vv12okmv85yOD7qbprkAZ9P
|
||||
J2uByT2L1EaLUuYVABVkmoZyBhvmSFZkfvXmToYlywo413r36mW4M+Y7yFkBuw0x
|
||||
aEvZ43zVVDaMsJQwTPdcUb4RmfSPk8d15FOr9WbWzSfKhUZ1HUtCWjPUuYWPzIrg
|
||||
APnJswb07ekm8G9bPeKctOg8lJnJTbM0HzA1KGaCzvpJ+asz6HY8+2mq5RzvQ5XX
|
||||
+6x+heNjNNG6f55cdwTw+ivWcsZiKDliAMUWlSkHMoWLjdzYOzrCM0vNf+BQMYeU
|
||||
+Qg/bOU4Pt11Hfn5/PwY7zdK3KTp/bqtWE6kBdlFXtnPdZKaYtUTmwdCgB/2EC2T
|
||||
pJOW/MBcMyHC5MxdistNFpXDv4O8dt7SNe83ADB2bA==
|
||||
=aXNE
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
hamada:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Hamada affirm that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly
|
||||
licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed
|
||||
under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I
|
||||
am committing it
|
||||
|
||||
Hamada
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
iQEcBAEBAgAGBQJNUs9+AAoJEOEGJ9ydVi3DddMH/0Bl4Mh3oSWFfx8peOj2JG2z
|
||||
bXHrK7kDHSK+aJrcFORQ4YPg2INjCH5GDDxaALhHKnVpTqZHy2F+RWII1SYVnU6l
|
||||
SQKBKOKw4bHQZSS0ibdsRkUbP1cyoxR9bh0SXfDFjwLu3rzsU4FFc6vmRAIdwiOo
|
||||
xQK3RpiPpzegsZPOFr4+vHIJUGcgGce86EIjC5VSoQHb3gHXsnsYGYBIszEj1MZ4
|
||||
OCzbjV7Gl44sZ6R8Q2AU1Dita7ANJv6bkbk8W8Rurxqi2lUDHiWkW2XaoZ18mvnj
|
||||
dZ65tC2kHgJHVU0oIn5rGMA7uuQizFL0d6pzQfJgw1hMA29sGQmxovy+Bp85Pqk=
|
||||
=HeGr
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
magma:
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I affirm that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iQIcBAEBAgAGBQJNg8FwAAoJEKiufQgd4cCY8sEP/13U7rmFMyYgbITiJHxRM/Kl
|
||||
BFW/iVYPqF4Kr9qjT0S80kOw0wvHctWGPAoHv23YxUYRrJuW0gd5EAdv+1KQBmE/
|
||||
lpKaTXMAt8DKba80dRk5I1S6SnJhAKyesF+nlxi53EfqIp1mRwSwzzRWgx9mz08R
|
||||
jJSyEbPHX/ipwmohEAZ1diIYQv9QFjrrXOv+avFZgm56tj3ckBtKZNuZ+P/0sttJ
|
||||
zmom7H7v9O1WlHiF50TuiLRM8V4XMKRRFw2GHaUgC/Uh5jN6PHEBoeQT5ssXvVIu
|
||||
7IcCx9wTmABoGo2PALO51C+2aMvDXFml7QCEjwKtG2zelWJLXR1tyZuQdn+fxLa0
|
||||
CDLc/V4mSgjscNN9gOJwX8AIUqwzA/SalZ5ng6gs6IqHk6wnrznw5kKNsEi1FInI
|
||||
n2MlDsgCiv1D6gqqOYEJYrWYmQqOoU7fNi/cgi9vJ1XQOA0pd40SeoNMNzs4LmIu
|
||||
oPifPJ+ODqfxTeBGSAZ3UDDdv80hzFlhMXHKk/a0+CpsBd1OmIkE+YhCQTI23wfv
|
||||
xBzzO3WoecufpM1Ykg0yOYlGJ3IMJ1n7zvobJfiExeLDBM7fPFmJqB1sFRyV0n9f
|
||||
sNMV1SjtLKZr65oePxFL1ludkQ6aMqlLCzNOSec6cUUSnkd+YwieT5yFpOXb6d8a
|
||||
w4O9LtQO1R4tgrVXhBw4
|
||||
=j/xY
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
kytv:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I KillYourTV/KYTV affirm that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
[pubkey kytv@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMMTHQs4AQ0KuXjHsPRvfeBo2EydIAcGcBH7VCO26AofX2ns3ezTKfvmv6QcFhcxn41I6OdG29DdFVRz4D8hIZvOoFYfe87nswgyXW85rEilJP02Z8HCr/dcYJbPsWAlMr7/UIDsT/9swd0U6QTf9X2W+VORyhDdYXcG8zikBqXQIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.10 (GNU/Linux)
|
||||
|
||||
iQEcBAEBAgAGBQJN0b3UAAoJEKvgwxnfCgoaQaMH/RdNoOt+1lm4cztvv5f2QBL3
|
||||
W4h3PjloDqkLE4ATDm+AcctahQaWuA221AMOrhR0aS+93wm+mOxzSmeoE91V475n
|
||||
2fpC/zWx0WRAzjQkr1M6OkcXNy6f+H5/UkBcaivzI9y5wUv5ETUHwiy+5qzG4oQ7
|
||||
AzbPHeJic88c6dyGX6rwa5VFMXLKYnr7h/i562/Ynaqus8tu/td1KEGkdNFgW4We
|
||||
y/aXYqaNYtds4xova49m99Y5u1kfKltv4YVEwY5a7Cj8p/31aeD8c10rWrf00R9H
|
||||
XlL2/b0lIx1C8CAK5TmdrD8G1SXl614SJTGuQfBT2N6yCT+jcrOMJIghCZhvmLQ=
|
||||
=U1Tw
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
str4d:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I str4d affirm that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license.
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses.
|
||||
* I have the right to release the code I commit under the terms I am committing it.
|
||||
* The following is my monotone signing key:
|
||||
|
||||
01265f0c817b24548478341fb75e672720a78b21 str4d@mail.i2p
|
||||
|
||||
[pubkey str4d@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe4zkWVW8fBXGtnMpWbw316qbxWhKdnM86bnPyU3a8C2ERaofESzoZPXm21BR4jEqHLFzVzni4MTAJ+J0XjW70Le5DZTm/AG18qXd8UsK2+IreCHqnv5XPL8Lw8oY6zNoT834emGqH2n0T98OHF6zNUStBrvuv9AFPa6FZocF2mwIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.10 (GNU/Linux)
|
||||
|
||||
iQEcBAEBAgAGBQJPE5faAAoJENXeOJaUpGWy5kUIAIhe1ow0VpMgJitkBr8cBF8B
|
||||
iJoKJ/DrCQ+XGk8API05VpyW0BLnG9qVRZh8DZux3NealIk3k37gN5rVHas0vpjU
|
||||
5qzqFNwpeyPSSFhylLMqf3fYdjJJZieZfWU/XW7HUMYGgZ03Lq95sxPRPyl8A0D8
|
||||
2ahv537Vy4EOZCdE8CvBgS/Hk0TVrG9EPL/vR1T6cx9YSV5/R0xiNNKujgoUHurX
|
||||
8gHudomaEf+VxqDFCFQbjIWqDuf1sm1eRQokvO+wELqNjkUsWhDMAS54EjTmYN+h
|
||||
Zc8XFXkeLUdRU6zJHo0tRWo0zswIW+a0r5W+T5MHwUnYOiTUUVgOjtwTGN7uURQ=
|
||||
=nEwG
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
meeh:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
|
||||
Meeh, 9 Aug 2012
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||
|
||||
iQIcBAEBAgAGBQJQJC9mAAoJELj1P6o1Twr4+i0QANHrOH8CyUJHVXkbTAxRdKW0
|
||||
u4avJvhQchyXjGvEPxYzUbQw2th41XlaNVKXgoiWTMKdOc88kkhL9dHj8yasMIHI
|
||||
hncureihJ7bFS11IFBauqP8nV8UG3oONq9GqzW+6YxQ4SL6UAMP84iXCfB6W0wBd
|
||||
ZE/06i5ezdsbeGfIgbrgkNsQMVcGRrbV5S3kBbW+lV4RitEsF2qb2IYlwbSUUSL9
|
||||
/7/8FX87xocLRs3GOjhmRiyifMSoSRShnmMmckDNGlkY3Yz19HSThE47xnyg9Aaj
|
||||
NYzmZMJFVnY6Rt1d4iLEw+/DUlYqs0afovHT2MnqymuN89204I6Yccn3n6AGKJxx
|
||||
yJX6U4x49BwohG7ZW1S9RINoobqcg3l1Ne1Lp5EBe8jyxFjz0n1684biDuyKJx/o
|
||||
ryp8mJ2cRKEWOduAyIChMeo/tFaDkMg/tTyuLrpSw404XpXa4EaUUlbZVQRHf25g
|
||||
1Kil1XL+KhFcAP3hgjmpfc2ukFcL6j09yI0eZhlkJLosI+lKMpK3dqcjbdOiOauk
|
||||
vQlJdkYZyxW2AReymH2XDI+cDg8tRw9iU22rAABXFs8zy5brK2Gjn1DK/sEVIdna
|
||||
NVr7aW4hiQWqHVWivVy5Otf8Ioacoi8i2NISZtbCc68WtEkoFmEdW7QB+kwSsXIq
|
||||
R2VFZ/114yCNY74KmujA
|
||||
=jfFH
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
zab:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I declare that:
|
||||
|
||||
Unless marked otherwise, all code I commit is implicitly licensed
|
||||
under the component's primary license
|
||||
If specified in the source, the code may be explicitly licensed under
|
||||
one of the component's alternate licenses
|
||||
I have the right to release the code I commit under the terms I am
|
||||
committing it
|
||||
|
||||
zab (topiltzin on irc)
|
||||
|
||||
[pubkey zab@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0H8bP/f8v7KjnyGlZGWQsF5G3ppvJ1Kwt/dUGi7gHbclKPnFAWXmb7YWOhl9Ua2USjQ4YrIeB7/2uVOpe+3FrFgUzIiWsx6I2yiNI3TscDvQsa5wG0Z2G4BbHXjONyiUzzO+j2TWPs3x35r2LCy8plRzPAswCF1GaIEjJCce5zwIDAQAB
|
||||
[end]
|
||||
[pubkey zab-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLI/VD0KtrPPaCSQPHse4p53ze5yi/0CePfbh1YXTJieUzCGpD76IjlpRB8sRYIevWGglOjac6fhAA97VMlSmZHIxtBw3U4Y7kTkdZcsgkKTa756ge5UeURVmBaUZevb8DDRREUQ3ELt6bit9iQhOvsAeUNiB1IVmRRBXrYIQhSQIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
|
||||
Comment: GPGTools - http://gpgtools.org
|
||||
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
|
||||
|
||||
iQIcBAEBAgAGBQJQmQeOAAoJEJkeLHPsdqhZgOUQAIRzuQZ3yF1r+P0iO390r+qy
|
||||
RxU0gQiPJDqDixDn0u8EAb2ljRWHTBfy792hs0nUu2//fNCh6chd7tbmJQn02Rm9
|
||||
nDICr2Lex6a9j498yWnkh0ZHq9yd1CPGT8xo3DW/KzLmqj+8xNUmx9RI3Y32wL9h
|
||||
H/O0VsGN0FhYeLU0vBlNkb+Vs9e0wY3/qCVMo1ldjVPahz6bblYXKVxfRhCThdfS
|
||||
ufUH2wqaDUozKabCeuM0xlll3PuaL2cATjUJuVWvO4Lahf6EZZBUvEgiW95wAL3q
|
||||
dFxZw9hUmFC4p30p0N+fQND/7aGfwujQO++S3D8gizqzSovaFpXxNzoQ6hSUWjI0
|
||||
+KsvbJXu0IguUen2p/Ka8EB0yWokYjIUH4V2kLt9jVJLuoSkejnTrFQuPIR1Qmcr
|
||||
31wqWJMWWbbFBR7KrPaDnBnRej5aIyZnHIyTtgUKhO+paDGQ0IYDirgXP10MtouY
|
||||
4Hl5v2OwhOwv/mPOm74EwJknFPhQThgxO8zG9sTHq5Lteb5SwaPLdZi7CruVU66p
|
||||
uCol/dZqVwrb2iVD19S4MvNQiOVQEWFKeBrxxBkT+qcGIWLMsG/o1qu0+VHpWQmo
|
||||
G4Adgew+7tIkak/71ss1pvUi05WsPP9KyzXrwqcFyoAmMFPtgxUIVYVc1kwYb5h3
|
||||
G58Br6HXTQLV8xAN1ml8
|
||||
=4989
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I lost my original keys, will be using these going forward.
|
||||
|
||||
Thanks,
|
||||
zab
|
||||
|
||||
[pubkey zab2@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLabJXvbBfHZ4zH2kom+W2Kb3kYYs58j8ZygkK9rj8j2SrlokxLiLABVYK7tdlb1zgZJVYgO8flnqsOSGb2CtoQ3i3Fqk0HNq2if47LVyaLwgOyoPOhYkDDGr9WggBp+svAHALMoGvh0lemKQZpQfdMgZ33k2l2o3Udvj3tpB/KwIDAQAB
|
||||
[end]
|
||||
[pubkey zab2-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmh9ukHhxTY3/bDsAt7mOUETxO3sLrf70kR9Mn4p44c4NKuFF4APmeYaFfIP9N5ZkBxY+52YPCQNXdtLDAPpxrq9as+IOaxH3ZVENllml0iCuGjZWtvYVkxHXCKohMMlffgZFJeDIEEed3eIttUPsIdW8U+2XQM1zF9R77+K0ZJQIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
|
||||
Comment: GPGTools - http://gpgtools.org
|
||||
|
||||
iQIcBAEBAgAGBQJRdvPLAAoJEJkeLHPsdqhZvAgP/02btw3WcVZ1CSJkfSrZ/shE
|
||||
ooBPao/nq0XYY9GZdGbA2Ki/5HOKnPTyulPwCNocL3EULFzR9bCAr2ZdjujOdKOO
|
||||
6RQc6QcebGvtQF21eLdffT+LiHVI6Vl1y2ls288WP4YYhBXmaf7vj+6wNHf2l/B7
|
||||
wiFEZH2nfyml7fruyWa0GHmWla96rbdMfXMdJAIcu/Uv0E5AeUHhHYhrDAZFf1/0
|
||||
CzdW/MvXCtan0WwrNHfFmeDx29kT9wtF3cgduyBj/K4Kw1NDGpXt3w5Hybp0xak5
|
||||
mpCo+lAxpC6DgjaTvrF54Hnqe21dydUdfwTZ7dtzfPbEwK5LrAWJCpjnlYO3kote
|
||||
GUYXyGccg4A6nknCrkeidJcaF1j4xpJf38XY08z48r+Wd0/n5VSDbvo6BBcOljgp
|
||||
IC1YQMcnFdRcV/K7MNlm58+WTa6NqJgrqnMnHDwdwF2v4csH4hjVmOD5//u6pCNg
|
||||
ghCMrTVuEP6fqFJflFdKYfG/jlX7Vm1hh0a4QobWsII2A8TBGe9x3//ZXhX3d57c
|
||||
mFhMwzjnCWdUTAfGPKeT+YorOnL9YRwsoXyBm4LjKGuHAMOKYpbS+6aZV2plPgIe
|
||||
QUamNO18hBy7N/YdF2DPoV41ntobkM+kVfmR0jLCbiNjisMg1eO8mQ1ynY4Kf2F1
|
||||
6+WauW2gCAnDCnD/+EEh
|
||||
=7u31
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
digit:
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Applicable to the code I contribute to the I2P project,
|
||||
I hereby state that:
|
||||
|
||||
* Unless marked otherwise, all code I commit is implicitly licensed under the component's primary license
|
||||
* If specified in the source, the code may be explicitly licensed under one of the component's alternate licenses
|
||||
* I have the right to release the code I commit under the terms I am committing it
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.20 (MingW32)
|
||||
|
||||
iQEcBAEBAgAGBQJRzgXbAAoJEAhQLmhPD07oWTkH/0nonFM5g0gw5SlqLKTxuBal
|
||||
OMomT+4+FFaCDgXOSXnnlw38no7c234LeKpuvlr0LLxjiRdfcsnnuvqIWmeeY4cq
|
||||
m3w6xGI+wNO2c/FYwTVumJO165sPc0Rg3b8d+zdUBncactRMdxcWUJTSHPdNzW2/
|
||||
tmtChmVft6SOj+qgBQEMW0IjYm/4+vg4NEO4OAg8ncogea8dubpIFJjE2UbSr7dE
|
||||
jkBoHiRXn4EN20Id4puCwXQK4QbbGwJGlKAUPgZXMd7nLqu9MljwLDkDWBMY9nRl
|
||||
Zf9i4Wqw8wKgkWIIbZ2+V+zP83FLcX6ga+GMr8tf/bwWjSe1PN7mZAQlPB4p8Qc=
|
||||
=NxxT
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
</pre>
|
||||
{% endblock %}
|
330
i2p2www/pages/site/get-involved/develop/licenses.html
Normal file
330
i2p2www/pages/site/get-involved/develop/licenses.html
Normal file
@@ -0,0 +1,330 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Licenses') }}{% endblock %}
|
||||
{% block content %}
|
||||
<h1>{{ _('I2P Software Licenses') }}</h1>
|
||||
<p>{% trans threatmodel=site_url('docs/how/threat-model') -%}
|
||||
As required by our
|
||||
<a href="{{ threatmodel }}">threat model</a> (among other reasons), the
|
||||
software developed to support the anonymous communication
|
||||
network we call I2P must be freely available, open source,
|
||||
and user modifiable. To meet these criteria, we make use of
|
||||
a variety of legal and software engineering techniques so
|
||||
as to remove as many barriers to entry for those considering
|
||||
making use of or contributing to the I2P effort.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
While the information below may be more confusing than just simply
|
||||
stating "I2P is BSD", "I2P is GPL", or "I2P is public domain",
|
||||
the short answer to the question "How is I2P licensed?" is this:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('All software bundled in the I2P distributions will allow:') }}</h2>
|
||||
<ol>
|
||||
<li>{{ _('use without fee') }}</li>
|
||||
<li>{{ _('use with no restrictions on how, when, where, why, or by whom is running it') }}</li>
|
||||
<li>{{ _('access to the source code without fee') }}</li>
|
||||
<li>{{ _('modifications to the source') }}</li>
|
||||
</ol>
|
||||
|
||||
<p>{% trans -%}
|
||||
Most of the software guarantees much more - the ability of <b>anyone</b> to
|
||||
distribute the modified source however they choose. However, not all of the
|
||||
software bundled provides this freedom - the GPL restricts the ability of
|
||||
developers who wish to integrate I2P with their own applications that are not
|
||||
themselves open source applications. While we applaud the noble goals of
|
||||
increasing the resources in the commons, I2P is best served by removing any
|
||||
barriers that stand in the way of its adoption - if a developer considering whether
|
||||
they can integrate I2P with their application has to stop and check with their lawyer,
|
||||
or conduct a code audit to make sure their own source can be released as GPL-compatible,
|
||||
we lose out.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('Component licenses') }}</h2>
|
||||
<p>{% trans -%}
|
||||
The I2P distribution contains several resources, reflecting the partitioning of
|
||||
the source code into components. Each component has its own license, which all
|
||||
developers who contribute to it agree to - either by explicitly declaring the release
|
||||
of code committed under a license compatible with that component, or by implicitly
|
||||
releasing the code committed under the component's primary license. Each of these
|
||||
components has a lead developer who has the final say as to what license is compatible
|
||||
with the component's primary license, and the I2P project manager has the final say as
|
||||
to what licenses meet the above four guarantees for inclusion in the I2P distribution.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>{{ _('Component') }}</b></td>
|
||||
<td valign="top" align="left"><b>{{ _('Source path') }}</b></td>
|
||||
<td valign="top" align="left"><b>{{ _('Resource') }}</b></td>
|
||||
<td valign="top" align="left"><b>{{ _('Primary license') }}</b></td>
|
||||
<td valign="top" align="left"><b>{{ _('Alternate licenses') }}</b></td>
|
||||
<td valign="top" align="left"><b>{{ _('Lead developer') }}</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>I2P SDK</b></td>
|
||||
<td valign="top" align="left">core</td>
|
||||
<td valign="top" align="left">i2p.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">zzz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>I2P Router</b></td>
|
||||
<td valign="top" align="left">router</td>
|
||||
<td valign="top" align="left">router.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">zzz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Ministreaming</b></td>
|
||||
<td valign="top" align="left">apps/ministreaming</td>
|
||||
<td valign="top" align="left">mstreaming.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">mihi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Streaming</b></td>
|
||||
<td valign="top" align="left">apps/streaming</td>
|
||||
<td valign="top" align="left">streaming.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">zzz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>I2PTunnel</b></td>
|
||||
<td valign="top" align="left">apps/i2ptunnel</td>
|
||||
<td valign="top" align="left">i2ptunnel.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="#java_exception">GPL + exception</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">mihi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>HTTPTunnel</b></td>
|
||||
|
||||
<td valign="top" align="left">apps/httptunnel</td>
|
||||
<td valign="top" align="left">httptunnel.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="#java_exception">GPL + exception</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">mihi</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b><a href="{{ site_url('docs/api/sam') }}">SAM</a> Bridge</b></td>
|
||||
<td valign="top" align="left">apps/sam</td>
|
||||
<td valign="top" align="left">sam.jar</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">human</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b><a href="{{ site_url('docs/api/sam') }}">SAM</a> perl library</b></td>
|
||||
<td valign="top" align="left">apps/sam/perl</td>
|
||||
<td valign="top" align="left">SAM.pm</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://dev.perl.org/licenses/artistic.html">Artistic</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">BrianR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b><a href="{{ site_url('docs/api/sam') }}">SAM</a> C library</b></td>
|
||||
<td valign="top" align="left">apps/sam/c</td>
|
||||
<td valign="top" align="left">libSAM</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">Nightblade</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b><a href="{{ site_url('docs/api/sam') }}">SAM</a> Python library</b></td>
|
||||
<td valign="top" align="left">apps/sam/python</td>
|
||||
<td valign="top" align="left">i2p.py</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">Connelly</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b><a href="{{ site_url('docs/api/sam') }}">SAM</a> C# library</b></td>
|
||||
<td valign="top" align="left">apps/sam/csharp/</td>
|
||||
<td valign="top" align="left">n/a</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">smeghead</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Addressbook</b></td>
|
||||
<td valign="top" align="left">apps/addressbook</td>
|
||||
<td valign="top" align="left">addressbook.war</td>
|
||||
|
||||
<td valign="top" align="left">
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a></td>
|
||||
<td valign="top" align="left">Ragnarok</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>I2PSnark</b></td>
|
||||
<td valign="top" align="left">apps/i2psnark</td>
|
||||
<td valign="top" align="left">i2psnark.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="#java_exception">GPL + exception</a></td>
|
||||
<td valign="top" align="left"> </td>
|
||||
<td valign="top" align="left">zzz</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Susidns</b></td>
|
||||
<td valign="top" align="left">apps/susidns</td>
|
||||
<td valign="top" align="left">susidns.war</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="#java_exception">GPL + exception</a></td>
|
||||
<td valign="top" align="left"> </td>
|
||||
<td valign="top" align="left"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Susimail</b></td>
|
||||
<td valign="top" align="left">apps/susimail</td>
|
||||
<td valign="top" align="left">susimail.war</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="#java_exception">GPL + exception</a></td>
|
||||
<td valign="top" align="left"> </td>
|
||||
<td valign="top" align="left"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Other apps not mentioned</b></td>
|
||||
<td valign="top" align="left">apps/</td>
|
||||
<td valign="top" align="left">...</td>
|
||||
<td valign="top" align="left">
|
||||
probably
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a>
|
||||
but check the source</td>
|
||||
<td valign="top" align="left"> </td>
|
||||
<td valign="top" align="left"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="left"><b>Installer</b></td>
|
||||
<td valign="top" align="left">installer</td>
|
||||
|
||||
<td valign="top" align="left">install.jar, guiinstall.jar</td>
|
||||
<td valign="top" align="left">
|
||||
<a href="http://en.wikipedia.org/wiki/Public_domain">Public domain</a></td>
|
||||
<td valign="top" align="left"><a href="#java_exception">GPL + exception</a><br />
|
||||
<a href="http://opensource.org/licenses/bsd-license.php">BSD</a><br />
|
||||
<a href="http://www.cryptix.org/LICENSE.TXT">Cryptix</a><br />
|
||||
<a href="http://opensource.org/licenses/mit-license.html">MIT</a></td>
|
||||
<td valign="top" align="left"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3><a id="java_exception">{{ _('GPL + java exception') }}</a></h3>
|
||||
<p>{% trans gpl='https://www.gnu.org/licenses/gpl.html' -%}
|
||||
While it may be redundant, just for clarity the
|
||||
<a href="{{ gpl }}">GPL</a>'ed code included within
|
||||
I2PTunnel and other apps must be released under the GPL with an additional "exception"
|
||||
explicitly authorizing the use of Java's standard libraries:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p><code>In addition, as a special exception, XXXX gives permission to link the
|
||||
code of this program with the proprietary Java implementation provided by Sun
|
||||
(or other vendors as well), and distribute linked combinations including the
|
||||
two. You must obey the GNU General Public License in all respects for all of the
|
||||
code used other than the proprietary Java implementation. If you modify this
|
||||
file, you may extend this exception to your version of the file, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this exception statement
|
||||
from your version.</code></p>
|
||||
|
||||
<p>{% trans -%}
|
||||
All source code under each component will by default be licensed under the
|
||||
primary license, unless marked otherwise in the code. All of the above is
|
||||
summary of the license terms - please see the specific license for the component
|
||||
or source code in question for authoritative terms. Component source locations and
|
||||
resource packaging may be changed if the repository is reorganized.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2><a id="commit">{{ _('Commit privileges') }}</a></h2>
|
||||
<p>{% trans monotone=site_url('get-involved/guides/monotone') -%}
|
||||
Developers may push changes to a distributed monotone repository if you
|
||||
receive permission from the person running that repository.
|
||||
See the <a href="{{ monotone }}">Monotone Page</a> for details.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
However, to have changes included in a release, developers
|
||||
must be trusted by the release manager (currently zzz).
|
||||
In addition, they must explicitly agree with the above terms to be trusted.
|
||||
That means that they must send one of the release managers a signed message affirming that:
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
Unless marked otherwise, all code I commit is implicitly licensed under
|
||||
the component's primary license
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
If specified in the source, the code may be explicitly licensed under one
|
||||
of the component's alternate licenses
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
I have the right to release the code I commit under the terms I
|
||||
am committing it
|
||||
{%- endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
<p>{% trans licenseagreements=site_url('get-involved/develop/license-agreements') -%}
|
||||
If anyone is aware of any instances where the above conditions are not met,
|
||||
please contact the component lead and/or an I2P release manager with further
|
||||
information.
|
||||
<a href="{{ licenseagreements }}">See developers' license agreements</a>.
|
||||
{%- endtrans %}</p>
|
||||
{% endblock %}
|
115
i2p2www/pages/site/get-involved/develop/release-signing-key.html
Normal file
115
i2p2www/pages/site/get-involved/develop/release-signing-key.html
Normal file
@@ -0,0 +1,115 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Release Signing Key') }}{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans -%}
|
||||
Releases 0.7.6 and later are signed by zzz. His public key is:
|
||||
{%- endtrans %}</p>
|
||||
<p>
|
||||
<pre>
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
mQGiBEOjTnURBADegKKrIP6pz4+n57dqo3l9QrKhIklCtIxgJkL06ZJq5fKAnMLv
|
||||
GPaGXmn5vRrbo6QzHs/lGLG+ySWFWr9SsVstNKrwk+F1yGIERutl0BqMwX1esfN2
|
||||
ugiZ3wB1yRu0PIrkm5cuDAFASFE+2lBjr1lfOrhw/dV+lLTcWx4NzkMzlwCgxgIk
|
||||
4cqQMGaVkmtuICQdYmmMicUD/AmNSVJEm2XUvaS5fYWsHJG3+oNkdNGcx5SOMUdk
|
||||
PFwcSozqvT9FeIP76OVHAshQKeftE3utOFANQ/YomXEnypmwMxLLR+GPw5pMbKlK
|
||||
6p+87aJZz+SA95E3ekmh7MmndvRd5RJDboUZy2H0FKX+FgaBlpsLl0uhT6uDuM/s
|
||||
7nb0A/9nEAgICOU5SeXtO3jKY+RQvKyE0AblK7xVaU+Sn8ly0zauOJD13rycVGhu
|
||||
vLcAUVR3FKEjxafpvZ0ZPBo7AACjSDqAoCw/s/vt9gmrhHKiqN31PhYYLhKdfKTs
|
||||
4LzWKTWKIAOwErkbYsMAXWKFT3LXsrEYvxq5j5m/6zMOwz2N7rQYenp6ICh6enop
|
||||
IDx6enpAbWFpbC5pMnA+iF8EExECAB8FAkOjTnUCGwMGCwkIBwMCBBUCCAMDFgIB
|
||||
Ah4BAheAAAoJEEFVdrqnbgvtxGsAn39SvQ3+ey87WDDG+TWArN6oU8gnAJ4zeAsA
|
||||
LUK37WZIt8OImZSxk37uQbkCDQRDo06VEAgAy2UeqsM5a+U6ZOWS9NQiILb3KbTL
|
||||
FeeAd2rn9oLSLpn5gDWycwUS0Q62JmbSMWy6m9aczpnxvwaBYXz6aCIvZmTNtaU6
|
||||
vyR/6wfJDyiUWSHtCyjpyFFYJimANd8Y8dDCimvceI/ihEDVyBX0kkgUGRAn8t3e
|
||||
unaLXqhbfiLiFw/GG1MNxUMzHt55/+9AqLOfRZg0riZvDoV79K+1sYSs8n1WeaVc
|
||||
T3wTb+Cb7fKNN7GT1MUhcXIoYYY6FGwsy5EWFsxYBRervqHtBJog2SoNUa/6BFGr
|
||||
zX+LDjK9L3xMTr3+fHIt4gPR/Lt4nnfEzL+rjClz/Fazmv38BRwPuKahFwADBQgA
|
||||
nD/AvZCnbWSB6khAVMqva5ROaD0gV0/UejCelZdYfgfHeCmrcMNQ+wCyww2NPsih
|
||||
9vB1w+AUE0pdH37k65VZN+2falUdzN+PFugJGuH2pmlVOprH2SuC5gKpGRvzUqV5
|
||||
U0nJmT2okDpW/52asUDJJLu1g//A3qBP83WGvSKUZg/ZisZA0qTiHH4QpjklopXi
|
||||
sSxR2hT8Fr9gF9WmDa09wbxE2xh/EL7gvVg/vk0gwOJcsFd67bNC+KUMOnjhOP0T
|
||||
K0/Ah4TEEs/hHNe9RsyyWlMoIUsF8AhG71ISOrJ5lLSXNe151XEb5FzZRM8sD9Zq
|
||||
0E3PjmLbdVhanYvsPnWK6YhJBBgRAgAJBQJDo06VAhsMAAoJEEFVdrqnbgvtXTwA
|
||||
njMu9ueCFbsjme7nwsz96PdazJcHAKCce17hGI25QNXDZyHohrjha6IxDg==
|
||||
=fAfi
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
</pre>
|
||||
<p>{% trans -%}
|
||||
Releases 0.6.1.31 through 0.7.5 were signed by Complication. His public key is:
|
||||
{%- endtrans %}</p>
|
||||
<p>
|
||||
<pre>
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
Hello,
|
||||
|
||||
I certify that below is my new public key, issued on 2007-11-24,
|
||||
valid until 2009-11-23, and its key fingerprint is:
|
||||
|
||||
73CF 2862 87A7 E7D2 19FF DB66 FA1D FC6B 79FC CE33
|
||||
|
||||
If you have my old public key, and use it to verify this,
|
||||
you will notice that my old key expired on 2007-11-15.
|
||||
Apologies for being late with this update.
|
||||
|
||||
For people who want to copy the key directly from this message,
|
||||
but aren't reading this using an e-mail program, please remember
|
||||
to delete the "- " escape sequences from the start and end marker
|
||||
of the public key block. Otherwise it won't be recognized.
|
||||
|
||||
Complication.
|
||||
|
||||
- -----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.7 (GNU/Linux)
|
||||
|
||||
mQGiBEdH5SYRBACzCum9jIjq+/G7ckuZ/TcFmaVYeBRE6OXPQozyrmTYtoCM2qGj
|
||||
DmvMJvKYiNiQVM42KiwlnqvaNtlgnXIZ6rcyLyn+bCI5cdX1SD5Rr5tgsgcXYA6Z
|
||||
l7usiFv1bTjD67piBehF130o+LZAJnVzI7JdpbA9SBY0mUwgKXLi0DAo8wCgiKOV
|
||||
UXC8+9X9vU1Mh/GyIrD4c3kD/iQOkYH4ajNaehTHNB31K+61ltpK9tMmcWtUY30A
|
||||
Z3q38jg/nmqqup/MYCtkvOqY4X9kujKzu01eSWSNZIE+BQSSd1cSsVD17OY3TL6B
|
||||
EvE+UFxh8OnDKs3tzJ0COnT/2zbgTavbWwqovoUE0P0PSYOFm2Co0BEQiCt9Tabc
|
||||
CxU3BACRWDvq7LFMRnHT+/OOJS6M442CYzy3+tIuc3ZAmZ8QwGsh4r1kd+5P1JTN
|
||||
YJCun6MPQEllJbRyHRBby76vFkWearRgnkpAmk2l1T2SXw3lip/SdmI0GgIzPSfQ
|
||||
8WyNbMjQXyH8/3k2Y9rgrC0DttrJPYOcTFMNKPpeTR+HN3ZnibQ+Q29tcGxpY2F0
|
||||
aW9uIChodHRwOi8vY29tcGxpY2F0aW9uLmkycCkgPGNvbXBsaWNhdGlvbkBtYWls
|
||||
LmkycD6IZQQTEQIAJQUCR0flJgIbAwUJA8JnAAYLCQgHAwIEFQIIAwMWAgECHgEC
|
||||
F4AACgkQ+h38a3n8zjP1yACfWkF1zjmlD0EzLaJRnefW5OHr10MAn0fgMyElK6ee
|
||||
AoPl2mTfxQQYOophuQQNBEdH5SYQEACTcoMJQBhyrr+EunLmEGNMO7D6RSBAtEKZ
|
||||
i5ctmhr/TCXMV9qjXkWISLZ9AS6z88rKozeOOK+QPBnc2FcEf77N04O5hwSdAyPH
|
||||
Qt7+umhiNQFQpZycJ5W87Y0ryERJygA5XyU47g7CGvuuOLgKGk0dDGCNFZGSblwI
|
||||
xtSh1CsrjWp23grFiBS0xvlU2VyuYUyrBuH5ip04pxmOyeRcaelkQerFhEXSRIR7
|
||||
XFxl6JpfqWt2oWHmYbYD3RT6WHU+rpSF1Hyey+zoF2zXfRb+JD90MpBL1xIkpieQ
|
||||
Y69Cj5U5VRjEppJJowSmwgz+UyMnT2KLl45vJesPrMUaSgduHiIQo4LM5BcbbV+2
|
||||
SC5i9xqbSJ+rc19Ftt9IEUZVMLole9PJC5Ff/h1qsabyueFuMIQkbiaUiNLOKl31
|
||||
I+JAiDt0Xku2PEVCERg7Jq5AsTLB9D+zKqxbvFu+JvqSdlaCvlas2BYU5rBosszH
|
||||
TStK2XW/+poTKnjnbJl6nGC06BNQPhRFAwuXboyUC5fyiuG1HohvPmPIi6IejLUY
|
||||
G8A5nZ+7um/XpKlt2i5rdVRfN1BX3+aKHQeLmrc+EIORZUU32TrP4ceLtSDf+JOW
|
||||
8N3vwzqKIPu42Y5KB8vnXEFSOkyt36OfEd6CcPKmncDyA4wJmfC+X3eoKcj+Yrh7
|
||||
UMr0elyw4wADBg/9F7g+bTpT4wPXj5ax1i+4BdedjVlO3YBdhc4LP6MXipNU6yLl
|
||||
l63TJ8q/l8pvSkUWZXrO3a7OibM/MHp0Te/7sTmKib2/3MFwHTrtjgcZBF6wx8LD
|
||||
T3oa6O0IK8IRnRwNqeu83SxojvVY0wLz/hpUbnIrOcHMZjWLMJEfHkNBHn+1HhT5
|
||||
tk9LRGu3j1oTpGh+DpdoPF5fggNu48YJ6n7etJJGW2MXQ++33aKeQSFrx+KlMtFW
|
||||
DSzg3KKSroB8Ex9wiKKWybagaed0YoP9BW3vIAaOeDpqK92UuTFz1Bte1DYiYU1e
|
||||
Rqq1xoBVhJXE5xzGmvS4/PIZMOL/bpKcuNxAgmwOVoaYoWZuIgePUaBbNvNg84HE
|
||||
RBjFMyfpzRCdPlWPZ18KcLUki3T58KzXEZ7WS5hC5lezwC6ET+wJusAt0A+Ik146
|
||||
igayKfVnvhedQdqufWhQWNr+hDc5Fb/az8nTyNOflAhD3yHldjxgkCOV8wjqyS+4
|
||||
iO33P5wW7o2QkZNWq8pyjsKRRJCtZ/PJ7FRGkUOjoC/gwhnGvBi0KoDcyBmfnPXp
|
||||
3MAgrzk9LwiA7PlS7PyhyMx5mYpa90xlXzszweCIXzGfbm6ciCUAM3G3Qb+qa2dW
|
||||
0u1X5L6bVtHVpYnr+5JOxCS4qwQvoK0QnHu6ezu4+rFutUJN35z6rFquejiITwQY
|
||||
EQIADwUCR0flJgIbDAUJA8JnAAAKCRD6HfxrefzOMzSZAJ9PmYNkW4Ia1qPqowg9
|
||||
z4Ja+hJ3dgCeL3mqvOEHG7AcUQrSlc6xlC1vbNY=
|
||||
=rGxK
|
||||
- -----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.7 (GNU/Linux)
|
||||
|
||||
iD8DBQFHR/zm4tLxqYRsGn0RAtCfAJ9rz+tsyEbeUAHcogdzgSPfuiWOAwCfWaVn
|
||||
Aiib6V5wOPbYTy13ADmxhfE=
|
||||
=mPFq
|
||||
-----END PGP SIGNATURE-----
|
||||
</pre>
|
||||
{% endblock %}
|
176
i2p2www/pages/site/get-involved/develop/signed-keys.html
Normal file
176
i2p2www/pages/site/get-involved/develop/signed-keys.html
Normal file
@@ -0,0 +1,176 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Signed Developer Keys') }}{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans -%}
|
||||
Keys for zzz, Complication and welterde are provided clearsigned. The key for jrandom must be
|
||||
verified differently, since he's away, and only left a binary detached
|
||||
signature for his key.
|
||||
{%- endtrans %}</p>
|
||||
<ol>
|
||||
<li><a href="#monotone-keys-for-zzz">{{ _('Monotone keys for zzz') }}</a></li>
|
||||
<li><a href="#monotone-keys-for-welterde">{{ _('Monotone keys for welterde') }}</a></li>
|
||||
<li><a href="#monotone-keys-for-complication">{{ _('Monotone keys for Complication') }}</a></li>
|
||||
<li><a href="#monotone-keys-for-jrandom">{{ _('Monotone keys for jrandom') }}</a></li>
|
||||
<li><a href="#other-developer-keys">{{ _('Others') }}</a></li>
|
||||
</ol>
|
||||
<h3 id="monotone-keys-for-zzz">{{ _('Monotone keys for zzz') }}</h3>
|
||||
<p>{% trans -%}
|
||||
<u>Tip:</u> To find zzz's GPG key, on his eepsite locate the key `0xA76E0BED`, with
|
||||
the name `zzz@mail.i2p` and the fingerprint `4456 EBBE C805 63FE 57E6 B310 4155
|
||||
76BA A76E 0BED`.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<code><pre>
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
[pubkey zzz-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa2uZI1BobxS4TapMqmf4Ws3nyL3GYgkfb
|
||||
MEawyWl0E1pfHJ4dLZkdxQdcLyCsN9OCY4jRNzmoYnDa2HtBLINq15BJmGJ0cfIDLXIB2GBO
|
||||
ViAPRkEKQTVoc7IpcjtPPjtSBVganD/AW78m9cgUYag86Lbm2ynUaXWpw9i4gpLdLQIDAQAB
|
||||
[end]
|
||||
[pubkey zzz@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtgaWY0Wc1c8pFGIxASZx78pHpHZKQV8z6
|
||||
IRQkgy65gQMjpLquaQpy3Xk8rkpnfA+6h3TS6bjplsEhlaQoxvpGxacRYOt+y1HC/n20O3RI
|
||||
E1A/e3sGKHGDEQW+3ItF4WSNfeQ18DzLeun32vFknq2k9im6Ts4tiYfKs8CZ5KW0/QIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFHnN51QVV2uqduC+0RAv8NAJ9B/7pWKLvqVI6HnAifs9oedsdWSACfYS1E
|
||||
sFwJiw4A+Sr9wQrtoO4X4ow=
|
||||
=SVDV
|
||||
-----END PGP SIGNATURE-----
|
||||
</pre></code>
|
||||
|
||||
|
||||
<h3 id="monotone-keys-for-welterde">{{ _('Monotone keys for welterde') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
<b>Tip:</b> To find welterde's GPG key, on public keyservers locate the key
|
||||
`0x62E011A1`, with the name `welterde@arcor.de` and the fingerprint `6720 FD81
|
||||
3872 6DFC 6016 64D1 EBBC 0374 62E0 11A1`.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<code><pre>
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
[pubkey dev@welterde.de]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRnJUBY0d4310UpZYGUlsWgxWHoD8bsKtT
|
||||
vGw83vwUQRtM2xPKxCHvEntg9Dgiqr5RurOKHK7Eak6WgxCXQFfC9ALr4SoC5abI4ZFvM/CA
|
||||
WRb547UIPTchSnuDUn/TSgDGqtGvMFS9t6OUp9Z/7QzIjLQhhBCqj4/hZhxUJ61XBwIDAQAB
|
||||
[end]
|
||||
[pubkey transport@welterde.de]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCujyq15a7t0Gki/sKoZQbv7CHJWbT3YB5O
|
||||
DQyU3zfqXnHNj82tz6wVsvjZmKUYZvax7wLLRErMGX3PTGxb23I5iypLmYtWt+lbkxMZdcGT
|
||||
GEXBU8JnAfhnSIdLzBJ2soe55vBQp0Tx1Ta+7/CNYwVPUxr5l6J/2gcGFJg3cAD99wIDAQAB
|
||||
[end]
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.7 (Darwin)
|
||||
|
||||
iD8DBQFHojoC67wDdGLgEaERAsALAKCwNlkNFaTyC4pV4rsinXQ8hu7UvgCbBeeV
|
||||
Ni/uLlSdl3Kz7KfVipwnjm4=
|
||||
=oE5t
|
||||
-----END PGP SIGNATURE-----
|
||||
</pre></code>
|
||||
|
||||
|
||||
<h3 id="monotone-keys-for-complication">{{ _('Monotone keys for Complication') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
<b>Tip:</b> To find Complication's GPG key, on his eepsite locate the key
|
||||
`0x79FCCE33`, with the name `complication@mail.i2p` and the fingerprint `73CF
|
||||
2862 87A7 E7D2 19FF DB66 FA1D FC6B 79FC CE33`.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<code><pre>
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA1
|
||||
|
||||
I confirm that my Monotone commit and transport keys are:
|
||||
|
||||
[pubkey complication@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx1F6nwBUCIiCPVsogy/h/+2d8X3uMcEdn
|
||||
RIN+gxO+0pK+yrGZiFwi7TG/K3PjDfJWuxsPRKLeb9Q4NmfxrAePelGig9llalrDnRkIcRFu
|
||||
cnNUOJo9C0MjvzYR9D6bIS3+udPdl6ou94JX+ueo2jLXI1lGgtdWDWTetJx9I++EvwIDAQAB
|
||||
[end]
|
||||
[pubkey complication-transport@mail.i2p]
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP55FmBUIZjamtDinVDrLmS9uU40KoNfLd
|
||||
iB+t/iEgEWHDPQxlwugh/aBQwsXKGGJMJSNURKwwjfrcr5y3oz9jpRjtLVqoZMBVLgp28WGA
|
||||
9KbzXi4/dYhdyNmr4gHc17mDSlhCfk/L5QxifSYwSaeeFPsoAAyBBB221Z3197bmVQIDAQAB
|
||||
[end]
|
||||
|
||||
Complication.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
|
||||
iD8DBQFHpdQT+h38a3n8zjMRAtW8AJ0fmuw1hrZePDzOx61xSh5cK27ikQCeJn+U
|
||||
g8X/m/JAsedzOFJDN0tlTig=
|
||||
=LM+C
|
||||
-----END PGP SIGNATURE-----
|
||||
</pre></code>
|
||||
|
||||
<h3 id="monotone-keys-for-jrandom">{{ _('Monotone keys for jrandom') }}</h3>
|
||||
|
||||
<p>{% trans -%}
|
||||
<b>Tip:</b> To find jrandom's GPG key for Syndie releases, on public keyservers locate
|
||||
the key `0x393F2DF9`, with the name `syndie-dist-key@i2p.net` and the
|
||||
fingerprint `AE89 D080 0E85 72F0 B777 B2ED C2FA 68C0 393F 2DF9`.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Jrandom had to leave unexpectedly in the end of 2007. His commit key was
|
||||
deployed in the Syndie Monotone repository, in a file named `mtn-committers`.
|
||||
That file also had a GPG signature, `mtn-committers.sig`, but it was a binary
|
||||
detached signature. I am going to supply both files in GPG ASCII-armoured form
|
||||
below.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
First, the file `mtn-committers` containing jrandom's Monotone key. Save as
|
||||
`mtn-committers.asc` and unpack it using `gpg --output mtn-committers --dearmor
|
||||
mtn-committers.asc`:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<code><pre>
|
||||
-----BEGIN PGP ARMORED FILE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
Comment: Use "gpg --dearmor" for unpacking
|
||||
|
||||
W3B1YmtleSBqcmFuZG9tQGkycC5uZXRdCk1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFV
|
||||
QUE0R05BRENCaVFLQmdRRE9MdzA1a1pidXg1S0xkcHJjR0hlQ1RseXQrR2poR1ho
|
||||
NwpBdXBzK1FNRC9GRWJJVkVGUEdJQkcyanUzMDY5VEtJSHBYcjVIRWU1bWFCZ3RJ
|
||||
SkJNOU5QVnZNTkZDZ09TcmVnbW5WSXB4U2cKSGQrV2l1MUl5emhkMFN4QzVwQ0hk
|
||||
bndTanYwNTFmY3RZY3AxcnM1T2NVb2pVZHZGN3RxOTF6QUFZK2tMeHBYNnpRSURB
|
||||
UUFCCltlbmRdCg==
|
||||
=035X
|
||||
-----END PGP ARMORED FILE-----
|
||||
</pre></code>
|
||||
|
||||
<p>{% trans -%}
|
||||
Now the file `mtn-committers.sig`, containing the GPG signature. Save as
|
||||
`mtn-committers.sig.asc` and unpack it using `gpg --output mtn-committers.sig
|
||||
--dearmor mtn-committers.sig.asc`. Use it to verify the above supplied
|
||||
`mtn-committers` file:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<code><pre>
|
||||
-----BEGIN PGP ARMORED FILE-----
|
||||
Version: GnuPG v1.4.6 (GNU/Linux)
|
||||
Comment: Use "gpg --dearmor" for unpacking
|
||||
|
||||
iD8DBQBFLssNwvpowDk/LfkRAtytAKCOiaDIveC3sri0lrdvwxt/TQciigCfXgyC
|
||||
ZY3qq910P/TX94qoJGePbuc=
|
||||
=8NHt
|
||||
-----END PGP ARMORED FILE-----
|
||||
</pre></code>
|
||||
|
||||
<h3 id="other-developer-keys">{{ _('Others') }}</h3>
|
||||
<p>{% trans licenseagreements=site_url('get-involved/develop/license-agreements') -%}
|
||||
Some of the developers have included their Monotone keys in their <a href="{{ licenseagreements }}">signed license agreement</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
Reference in New Issue
Block a user