-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathIdentityClaimsVerifier.sol
40 lines (35 loc) · 1.14 KB
/
IdentityClaimsVerifier.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
pragma solidity >=0.5.3 <0.6.0;
pragma experimental ABIEncoderV2;
import "./AbstractClaimsVerifier.sol";
import "./claimTypes/IdentityClaimTypes.sol";
contract IdentityClaimsVerifier is AbstractClaimsVerifier, IdentityClaimTypes {
constructor (address _registryAddress, address _revocations)
AbstractClaimsVerifier(
"EIP712IdentityClaims",
"1",
1,
address(this),
_registryAddress,
_revocations
) public {}
function verify(VerifiedIdentity memory claim, uint8 v, bytes32 r, bytes32 s) public view returns (bool) {
bytes32 digest = keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR,
hash(claim)
)
);
return verifyIssuer(digest, claim.issuer, claim.subject, v, r, s) && valid(claim.validFrom, claim.validTo);
}
function verify(VerifiedResident memory claim, uint8 v, bytes32 r, bytes32 s) public view returns (bool) {
bytes32 digest = keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR,
hash(claim)
)
);
return verifyIssuer(digest, claim.issuer, claim.subject, v, r, s) && valid(claim.validFrom, claim.validTo);
}
}