code: def decrypt(private, ciphertext, output):
      
      privatekeydata = json.load(private)
      assert 'pub' in privatekeydata
      pub = load_public_key(privatekeydata['pub'])
  
      log("Loading private key")
      private_key_error = "Invalid private key"
      assert 'key_ops' in privatekeydata, private_key_error
      assert "decrypt" in privatekeydata['key_ops'], private_key_error
      assert 'p' in privatekeydata, private_key_error
      assert 'q' in privatekeydata, private_key_error
      assert privatekeydata['kty'] == 'DAJ', private_key_error
  
      _p = phe.util.base64_to_int(privatekeydata['p'])
      _q = phe.util.base64_to_int(privatekeydata['q'])
  
      private_key = phe.PaillierPrivateKey(pub, _p, _q)
  
      log("Decrypting ciphertext")
      enc = load_encrypted_number(ciphertext, pub)
      out = private_key.decrypt(enc)
      print(out, file=output)
docs: Decrypt ciphertext with private key.
  
      Requires PRIVATE key file and the CIPHERTEXT encrypted with
      the corresponding public key.