Research Article

CR-BA: Public Key Infrastructure Certificate Revocation Scheme Based on Blockchain and Accumulator

Algorithm 2

Update algorithm, MemWitUp.
Input: accValue, member, witness, key
Output: f_result or false//validation response
(1)ChaincodeStub stub = ctx.getStub ();
(2)byte[] ojectBytes = stub.getState (Accumulator.class.getSimpleName ());
(3)Accumulator accValue = deserialize (ojectBytes); //deserialize the accumulator object
(4)for member in MEMBER//member are in MEMBER
(5)Boolean verify = acc.verifyMembership (accValue, member, witness, acc.getN ()); //Verify that the current certificate exists
(6)result ← Acc.verify (member); //get the verification result
(7)if (result = = 0)
(8)      Acc ← Acc.Delete(member); //delete the certificate
(9)    witness = acc.proveMembership (sha256 (cert, n)); //compute new accumulator value and new revocation factor
(10)      f_result ← provemembership (sha256 (cert, n)); //f_result is the result
(11)      Return f_result; //return update result
(12)  else
(13)Return false;