diff options
Diffstat (limited to 'node/Revocation.hpp')
-rw-r--r-- | node/Revocation.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/node/Revocation.hpp b/node/Revocation.hpp index 18916985..1697b52f 100644 --- a/node/Revocation.hpp +++ b/node/Revocation.hpp @@ -50,9 +50,10 @@ public: enum CredentialType { CREDENTIAL_TYPE_ALL = 0, - CREDENTIAL_TYPE_COM = 1, + CREDENTIAL_TYPE_COM = 1, // CertificateOfMembership CREDENTIAL_TYPE_CAPABILITY = 2, - CREDENTIAL_TYPE_TAG = 3 + CREDENTIAL_TYPE_TAG = 3, + CREDENTIAL_TYPE_COO = 4 // CertificateOfOwnership }; Revocation() @@ -88,8 +89,8 @@ public: { if (signer.hasPrivate()) { Buffer<sizeof(Revocation) + 64> tmp; - this->serialize(tmp,true); _signedBy = signer.address(); + this->serialize(tmp,true); _signature = signer.sign(tmp.data(),tmp.size()); return true; } @@ -152,6 +153,8 @@ public: memcpy(_signature.data,b.field(p,ZT_C25519_SIGNATURE_LEN),ZT_C25519_SIGNATURE_LEN); p += ZT_C25519_SIGNATURE_LEN; } else throw std::runtime_error("invalid signature"); + } else { + p += 2 + b.template at<uint16_t>(p); } p += 2 + b.template at<uint16_t>(p); |