| Algorithm 2 UserRevoke |
| Input: groupID, uCert, newGroupPublicKey |
| Output: bool |
| 1: if msg.sender is not AccessControlServer then |
| 2: return false; |
| 3: end if |
| 4: RevokedCert uCert |
| 5: mapping newGroupPublicKey to groupID |
| 6: return true; |
| Algorithm 2 UserRevoke |
| Input: groupID, uCert, newGroupPublicKey |
| Output: bool |
| 1: if msg.sender is not AccessControlServer then |
| 2: return false; |
| 3: end if |
| 4: RevokedCert uCert |
| 5: mapping newGroupPublicKey to groupID |
| 6: return true; |