summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <Thorsten.Behrens@CIB.de>2017-12-07 14:40:34 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2017-12-07 15:00:45 +0100
commit0ee502ecf168132330619d7a409aa209423e983b (patch)
tree1068f570c6024ae632f3267293247e81bf405c27
parentd664cecb69a6f28cf06d2dcfb1ecd3801b1f5769 (diff)
fixup manifest writingfeature/gpg4libre2
Change-Id: I0c62e00cfe281efaaf863585944b9d2f561a4405
-rw-r--r--package/source/manifest/ManifestExport.cxx21
1 files changed, 14 insertions, 7 deletions
diff --git a/package/source/manifest/ManifestExport.cxx b/package/source/manifest/ManifestExport.cxx
index 02ea5a016270..5cf87334ca62 100644
--- a/package/source/manifest/ManifestExport.cxx
+++ b/package/source/manifest/ManifestExport.cxx
@@ -261,13 +261,13 @@ ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > con
pNValue->Value >>= aCipherValue;
}
- if (!aPgpKeyID.hasElements() && !aPgpKeyPacket.hasElements() && !aCipherValue.hasElements() )
+ if (aPgpKeyID.hasElements() && aCipherValue.hasElements() )
{
// ==== manifest:encrypted-key & children - one for each recipient
xHandler->startElement( sEncryptedKeyElement, nullptr );
xHandler->ignorableWhitespace ( sWhiteSpace );
- // TODO: this should rather be configurable
+ // TODO: the algorithm should rather be configurable
pNewAttrList->AddAttribute ( sAlgorithmAttribute, sCdataAttribute,
"http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" );
xHandler->startElement( sEncryptionMethodElement, xNewAttrList );
@@ -286,11 +286,15 @@ ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > con
xHandler->endElement( sPgpKeyIDElement );
xHandler->ignorableWhitespace ( sWhiteSpace );
- xHandler->startElement( sPGPKeyPacketElement, nullptr );
- ::sax::Converter::encodeBase64(aBuffer, aPgpKeyPacket);
- xHandler->characters( aBuffer.makeStringAndClear() );
- xHandler->endElement( sPGPKeyPacketElement );
- xHandler->ignorableWhitespace ( sWhiteSpace );
+ // key packet is optional
+ if (aPgpKeyPacket.hasElements())
+ {
+ xHandler->startElement( sPGPKeyPacketElement, nullptr );
+ ::sax::Converter::encodeBase64(aBuffer, aPgpKeyPacket);
+ xHandler->characters( aBuffer.makeStringAndClear() );
+ xHandler->endElement( sPGPKeyPacketElement );
+ xHandler->ignorableWhitespace ( sWhiteSpace );
+ }
xHandler->endElement( sPgpDataElement );
xHandler->ignorableWhitespace ( sWhiteSpace );
@@ -448,6 +452,9 @@ ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > con
pNewAttrList->AddAttribute ( sKeyDerivationNameAttribute,
sCdataAttribute,
sPGP_Name );
+ // no start-key-generation needed, our session key has
+ // max size already
+ bStoreStartKeyGeneration = false;
}
else
{