You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ideally OVST would be atomic - that is, if some part of the sign process does not work, then it should appear as if no attempt was made to the package.
This is slightly difficult because applying a signature usually means updating or creating a handful of files.
[Content Types.xml] this already supports the notion of commit changes.
_rels/.rels this already supports the notion of commit changes.
origin.psdor creating parts is NOT currently atomic.
Relationship for origin.psdor this is already atomic in the sense that it is transactional because origin.psdor is immediately written to disk.
signature.psdsxs creating parts is NOT currently atomic.
The difficult part here is we need a stream to write to - and read from - without updating the ZIP.
Options:
Shadow copy the ZIP to %TEMP% first, then atomically switch them out. I don't like this idea
New parts can be backed by a memory stream at first, then become real part streams. I like this idea more.
We already keep a running list of OpcPart objects by URI: we would need to virtualize the access to the OpcPackage to return a virtual part with a memory stream. When the signature process is complete, flush all of the virtual parts in to real parts and swap out the memory stream for a part stream.
The text was updated successfully, but these errors were encountered:
Ideally OVST would be atomic - that is, if some part of the sign process does not work, then it should appear as if no attempt was made to the package.
This is slightly difficult because applying a signature usually means updating or creating a handful of files.
[Content Types.xml]
this already supports the notion of commit changes._rels/.rels
this already supports the notion of commit changes.origin.psdor
creating parts is NOT currently atomic.origin.psdor
this is already atomic in the sense that it is transactional becauseorigin.psdor
is immediately written to disk.signature.psdsxs
creating parts is NOT currently atomic.The difficult part here is we need a stream to write to - and read from - without updating the ZIP.
Options:
We already keep a running list of
OpcPart
objects by URI: we would need to virtualize the access to theOpcPackage
to return a virtual part with a memory stream. When the signature process is complete, flush all of the virtual parts in to real parts and swap out the memory stream for a part stream.The text was updated successfully, but these errors were encountered: