diff options
author | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2017-12-07 14:40:34 +0100 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2017-12-07 15:00:45 +0100 |
commit | 0ee502ecf168132330619d7a409aa209423e983b (patch) | |
tree | 1068f570c6024ae632f3267293247e81bf405c27 | |
parent | d664cecb69a6f28cf06d2dcfb1ecd3801b1f5769 (diff) |
fixup manifest writingfeature/gpg4libre2
Change-Id: I0c62e00cfe281efaaf863585944b9d2f561a4405
-rw-r--r-- | package/source/manifest/ManifestExport.cxx | 21 |
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 { |