final String licensePlain = getLicenseString();
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
final OutputStream armoredOutputStream = new ArmoredOutputStream(byteArrayOutputStream);
final PGPSignatureGenerator signatureGenerator = createPGPSignatureGenerator(keyPassPhraseString.toCharArray());
final PGPCompressedDataGenerator generator = createZlibCompressedDataGenerator();
final BCPGOutputStream outputStream = new BCPGOutputStream(generator.open(armoredOutputStream));
signatureGenerator.generateOnePassVersion(false).encode(outputStream);
encode(licensePlain, using(signatureGenerator), to(outputStream));
signatureGenerator.generate().encode(outputStream);
generator.close();
armoredOutputStream.close();
return new String(byteArrayOutputStream.toByteArray());
}