in src/vtok_p11/src/crypto/sign.rs [136:151]
fn enter_state(&mut self, state: OpCtxState) -> Result<(), Error> {
let ret = match (self.state, state) {
(OpCtxState::Initialized, _) => Ok(()),
(OpCtxState::SinglepartActive, OpCtxState::SinglepartActive) => Ok(()),
(OpCtxState::SinglepartActive, _) => Err(Error::OperationActive),
(OpCtxState::MultipartActive, OpCtxState::MultipartActive) => Ok(()),
(OpCtxState::MultipartActive, OpCtxState::MultipartReady) => Ok(()),
(OpCtxState::MultipartActive, _) => Err(Error::OperationActive),
(OpCtxState::MultipartReady, OpCtxState::MultipartReady) => Ok(()),
(OpCtxState::MultipartReady, _) => Err(Error::OperationActive),
};
if ret.is_ok() {
self.state = state;
}
ret
}