@ComponentProfile(summary="Decrypt data using a PGP/GPG private key", tag="pgp,gpg,decrypt,private key", since="3.9.2") public class PGPDecryptService extends ServiceImp
<pgp-decrypt>
<unique-id>trusting-mayer</unique-id>
<private-key class="constant-data-input-parameter">
<value>-----BEGIN PGP PRIVATE KEY BLOCK-----
lQPGBF2ckxABCAC5Kfu39ky3OIXkxwWOJx70G2dLRYvDMHXf3ZraUPNRMIhh3ZGx
-----END PGP PRIVATE KEY BLOCK-----</value>
</private-key>
<passphrase class="constant-data-input-parameter">
<value>my5ecr3tP455w0rd</value>
</passphrase>
<cipher-text class="stream-payload-input-parameter"/> <!-- cipher text comes from message payload -->
<clear-text class="stream-payload-output-parameter"/> <!-- clear text goes back into the message payload -->
</pgp-decrypt>
In the adapter configuration file this class is aliased as pgp-decrypt which is the preferred alternative to the fully qualified classname when building your configuration.
Modifier and Type | Field and Description |
---|---|
protected static java.nio.charset.Charset |
CHARSET |
CONFIRMATION_ID_KEY
Constructor and Description |
---|
PGPDecryptService() |
Modifier and Type | Method and Description |
---|---|
protected void |
closeService()
.
|
void |
doService(AdaptrisMessage message)
.
|
protected java.io.InputStream |
extractStream(AdaptrisMessage message,
DataInputParameter parameter,
java.lang.String warning) |
protected java.lang.String |
extractString(AdaptrisMessage message,
DataInputParameter parameter,
java.lang.String warning) |
DataInputParameter |
getCipherText()
Get the cipher text to decrypt.
|
DataOutputParameter |
getClearText()
Get the decrypted clear text.
|
protected static java.io.InputStream |
getDecoderStream(java.io.InputStream in)
Obtains a stream that can be used to read PGP data from the provided stream.
|
protected static int |
getLengthWithoutSeparatorOrTrailingWhitespace(byte[] line) |
protected static int |
getLengthWithoutWhiteSpace(byte[] line) |
protected static byte[] |
getLineSeparator() |
DataInputParameter |
getPassphrase()
Get the passphrase to unlock the private key.
|
DataInputParameter |
getPrivateKey()
Get the private key for decryption.
|
protected void |
initService()
.
|
protected void |
insertStream(AdaptrisMessage message,
DataOutputParameter parameter,
java.io.ByteArrayOutputStream value) |
void |
prepare()
.
|
protected static void |
processLine(java.io.OutputStream aOut,
org.bouncycastle.openpgp.PGPSignatureGenerator sGen,
byte[] line) |
protected static void |
processLine(org.bouncycastle.openpgp.PGPSignature sig,
byte[] line) |
protected static int |
readInputLine(java.io.ByteArrayOutputStream bOut,
java.io.InputStream fIn) |
protected static int |
readInputLine(java.io.ByteArrayOutputStream bOut,
int lookAhead,
java.io.InputStream fIn) |
void |
setCipherText(DataInputParameter cipherText)
Set the cipher text to decrypt.
|
void |
setClearText(DataOutputParameter clearText)
Set the decrypted clear text.
|
void |
setPassphrase(DataInputParameter passphrase)
Set the passphrase to unlock the private key.
|
void |
setPrivateKey(DataInputParameter privateKey)
Set the private key for decryption.
|
changeState, close, continueOnFailure, createName, createQualifier, getContinueOnFail, getIsTrackingEndpoint, getLookupName, getUniqueId, init, isBranching, isTrackingEndpoint, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, setContinueOnFail, setIsTrackingEndpoint, setLookupName, setUniqueId, start, stop
public void doService(AdaptrisMessage message) throws ServiceException
ServiceException
public void setPrivateKey(DataInputParameter privateKey)
privateKey
- The private key.public DataInputParameter getPrivateKey()
public void setCipherText(DataInputParameter cipherText)
cipherText
- The cipher text.public DataInputParameter getCipherText()
public void setPassphrase(DataInputParameter passphrase)
passphrase
- The passphrase.public DataInputParameter getPassphrase()
public void setClearText(DataOutputParameter clearText)
clearText
- The clear text.public DataOutputParameter getClearText()
protected void initService()
initService
in class ServiceImp
protected void closeService()
closeService
in class ServiceImp
public void prepare()
protected java.io.InputStream extractStream(AdaptrisMessage message, DataInputParameter parameter, java.lang.String warning) throws java.lang.Exception
java.lang.Exception
protected java.lang.String extractString(AdaptrisMessage message, DataInputParameter parameter, java.lang.String warning) throws java.lang.Exception
java.lang.Exception
protected void insertStream(AdaptrisMessage message, DataOutputParameter parameter, java.io.ByteArrayOutputStream value) throws java.lang.Exception
java.lang.Exception
protected static java.io.InputStream getDecoderStream(java.io.InputStream in) throws java.io.IOException
If the initial bytes of the underlying stream are binary PGP encodings, then the stream will
be returned directly, otherwise an ArmoredInputStream
is used to wrap the provided
stream and remove ASCII-Armored encoding.
in
- the stream to be checked and possibly wrapped.java.io.IOException
- if an error occurs reading the stream, or initialising the
ArmoredInputStream
.protected static void processLine(java.io.OutputStream aOut, org.bouncycastle.openpgp.PGPSignatureGenerator sGen, byte[] line) throws java.security.SignatureException, java.io.IOException
java.security.SignatureException
java.io.IOException
protected static void processLine(org.bouncycastle.openpgp.PGPSignature sig, byte[] line) throws java.security.SignatureException, java.io.IOException
java.security.SignatureException
java.io.IOException
protected static int getLengthWithoutWhiteSpace(byte[] line)
protected static int getLengthWithoutSeparatorOrTrailingWhitespace(byte[] line)
protected static byte[] getLineSeparator()
protected static int readInputLine(java.io.ByteArrayOutputStream bOut, java.io.InputStream fIn) throws java.io.IOException
java.io.IOException
protected static int readInputLine(java.io.ByteArrayOutputStream bOut, int lookAhead, java.io.InputStream fIn) throws java.io.IOException
java.io.IOException