Skip to content
Peer-to-peer file transfer. No servers/sign-ups/bullshit required. Period.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
gnupg-for-java @ e37a964


Peer-to-peer file transfer. No password/sign-up/storage/server required.

Handshake is a Java program that allows you transfer files between any two Internet-connected computers without requiring an external file-transfer server to act as intermediate. Light, nimble and multi-platform, Handshake is everything a good, simple file transfer program should be, without being too geeky/nerdy. Also provides solid security measures.

Build status
Build Status

Project Structure

The whole Handshake app is divided into two parts:

  • This repo (HandshakeApp) handles all of the GUI, majority of functionality and interfaces with gnupg-for-java.
  • gnupg-for-java: Provides an API for all the PGP related tasks such as encryption, key generation and other crypto stuff.

Which branch?

All the work happens on the develop branch, with specific branches for major/under-development features (feature/* branches). No guarantee of compilation of code on develop branch. Grab the master branch if you want functional, buildable code.

Grab the gh-pages branch if you want to improve the website

Yes, in short we follow Vincent Driessen's branching model


We prefer Linux for building and developing Handshake, but the compiling should work on Windows and Mac OS too. To build you need

  • gnupg-for-java
  • Java Development Kit (JDK): Version 7 and above
  • NetBeans IDE: Version 8
  • Maven (Default wth NetBeans)

All other and any future dependencies will be handled by Maven

Note: NetBeans IDE is required only because of the GUI code. If you are contributing to non GUI code, any IDE with Apache Maven support will do.

Instructions for building gnupg-for-java can be found in its own README


If you notice any bug, or have a suggestion, please open a GitHub issue. Pull requests are welcome. Get going! Please be consistent with your style throughout.

If you aren't interested in contributing to the source code or aren't a developer, we have other vacancies too:

  • 'The Handshake Wiki' which provides documentation and guides to both developers and common users of Handshake. For convenience and ease of translation to other languages, all original posts to the wiki should be in English.
  • Translate Handshake to various international languages. We are currently working out a solution for smooth translation of Handshake's user interface, kindly do not alter the source code's labels and send us a pull request.

Please follow Vincent Driessen's branching model. You can use a GUI such as Sourcetree or the gitflow extension to make tasks easier for you.

Any kind of contribution is welcome.


GPL v3

Your usage and copying rights regarding the software are covered under the GNU GPL v3 License. See the LICENSE file for full text.

More Information

Visit Handshake App Wiki for technical information or to introduce Handshake to your friends in a much better visual way, visit the Handshake website.

You can’t perform that action at this time.