// An actor contributes their decryption share to the decryption process.
An actor contributes their decryption share to the decryption process.
An actor contributes their decryption share to the decryption process .
pub fn obtain_partial_private_key_with_verification(&mut self, sub_pkg: &mut SubPKG, _g_parameter: &GParameter, id: String) {
        let ciphertext = sub_pkg.msg_inbox.take().unwrap();
        // Check that the actor's ciphertext is the same ciphertext decrypted at the meeting.
        // The first actor to arrive at the decryption meeting sets the meeting's ciphertext.
        if let Some(ref meeting_ciphertext) = self.ciphertext {
            if ciphertext != *meeting_ciphertext {
                return;
            }
        } else {
            self.ciphertext = Some(ciphertext.clone());
        }
        //println!("ciphertext ######################eee {:?}", ciphertext);
        let partial_private_key = sub_pkg.pkg_sk_share.obtain_partial_private_key(id).unwrap();
        //let partial_private_key_is_valid = sub_pkg
        //    .pkg_pk_share
        //    .verify_ciphertext(&partial_private_key, &ciphertext, g_parameter);
        //assert!(partial_private_key_is_valid);
        self.partial_private_key.insert(sub_pkg.id, partial_private_key);
    }
pub fn obtain_partial_private_key_with_verification ( & mut self , sub_pkg : & mut SubPKG , _g_parameter : & GParameter , id : String ) { let ciphertext = sub_pkg . msg_inbox . take ( ) . unwrap ( ) ; // Check that the actor's ciphertext is the same ciphertext decrypted at the meeting. // The first actor to arrive at the decryption meeting sets the meeting's ciphertext. if let Some ( ref meeting_ciphertext ) = self . ciphertext { if ciphertext != * meeting_ciphertext { return ; } } else { self . ciphertext = Some ( ciphertext . clone ( ) ) ; } //println!("ciphertext ######################eee {:?}", ciphertext); let partial_private_key = sub_pkg . pkg_sk_share . obtain_partial_private_key ( id ) . unwrap ( ) ; //let partial_private_key_is_valid = sub_pkg //    .pkg_pk_share //    .verify_ciphertext(&partial_private_key, &ciphertext, g_parameter); //assert!(partial_private_key_is_valid); self . partial_private_key . insert ( sub_pkg . id , partial_private_key ) ; }
An actor contributes their decryption share to the decryption process.
An actor contributes their decryption share to the decryption process .
&mut self
sub_pkg
&mut SubPKG
_g_parameter
&GParameter
id
String