Research Article
[Retracted] Enabling Decentralized and Auditable Access Control for IoT through Blockchain and Smart Contracts
Algorithm 2
Capability smart contract.
| contract capability: | | register(token): | | // verify if the policy exists | | if ! exist(hash(token)) then | | token.status = “active” | | put(token) | | store(token) | | return true | | else | | return false | | end if | | query(token): | | get(token) | | if error != nil then | | return error | | else | | status = token.status | | return status | | end if | | generate(issuer, privkey, user, device, resource, action): | | time = get(current_system_time) | | id = get(random_ID) | | sig = sig_func(privkey, id, time, issuer, user, | | device, resource, action) | | token = JSON(id, time, issuer, user, device, | | resource, action, sig) | | register(token) | | return token | | revoke(token): | | get(token) | | if error != nil then | | token.status = “inactive” | | return true | | else | | return false | | end if |
|