cleanup
This commit is contained in:
parent
4cff2dd233
commit
2fcc2f106e
2 changed files with 36 additions and 36 deletions
|
@ -1,43 +1,43 @@
|
||||||
package claim
|
package claim
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"../pb"
|
||||||
|
"encoding/hex"
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"encoding/hex"
|
|
||||||
"../pb"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (claim *ClaimHelper) Serialized() ([]byte, error) {
|
func (c *ClaimHelper) Serialized() ([]byte, error) {
|
||||||
serialized := claim.String()
|
serialized := c.String()
|
||||||
if serialized == "" {
|
if serialized == "" {
|
||||||
return nil, errors.New("not initialized")
|
return nil, errors.New("not initialized")
|
||||||
}
|
}
|
||||||
v := claim.GetVersion()
|
v := c.GetVersion()
|
||||||
t := claim.GetClaimType()
|
t := c.GetClaimType()
|
||||||
|
|
||||||
return proto.Marshal(
|
return proto.Marshal(
|
||||||
&pb.Claim{
|
&pb.Claim{
|
||||||
Version: &v,
|
Version: &v,
|
||||||
ClaimType: &t,
|
ClaimType: &t,
|
||||||
Stream: claim.GetStream(),
|
Stream: c.GetStream(),
|
||||||
Certificate: claim.GetCertificate(),
|
Certificate: c.GetCertificate(),
|
||||||
PublisherSignature: claim.GetPublisherSignature()})
|
PublisherSignature: c.GetPublisherSignature()})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) GetProtobuf() (*pb.Claim) {
|
func (c *ClaimHelper) GetProtobuf() *pb.Claim {
|
||||||
v := claim.GetVersion()
|
v := c.GetVersion()
|
||||||
t := claim.GetClaimType()
|
t := c.GetClaimType()
|
||||||
|
|
||||||
return &pb.Claim{
|
return &pb.Claim{
|
||||||
Version: &v,
|
Version: &v,
|
||||||
ClaimType: &t,
|
ClaimType: &t,
|
||||||
Stream: claim.GetStream(),
|
Stream: c.GetStream(),
|
||||||
Certificate: claim.GetCertificate(),
|
Certificate: c.GetCertificate(),
|
||||||
PublisherSignature: claim.GetPublisherSignature()}
|
PublisherSignature: c.GetPublisherSignature()}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) SerializedHexString() (string, error) {
|
func (c *ClaimHelper) SerializedHexString() (string, error) {
|
||||||
serialized, err := claim.Serialized()
|
serialized, err := c.Serialized()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -45,19 +45,19 @@ func (claim *ClaimHelper) SerializedHexString() (string, error) {
|
||||||
return serialized_hex, nil
|
return serialized_hex, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) SerializedNoSignature() ([]byte, error) {
|
func (c *ClaimHelper) SerializedNoSignature() ([]byte, error) {
|
||||||
if claim.String() == "" {
|
if c.String() == "" {
|
||||||
return nil, errors.New("not initialized")
|
return nil, errors.New("not initialized")
|
||||||
}
|
}
|
||||||
if claim.GetPublisherSignature() == nil {
|
if c.GetPublisherSignature() == nil {
|
||||||
serialized, err := claim.Serialized()
|
serialized, err := c.Serialized()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return serialized, nil
|
return serialized, nil
|
||||||
} else {
|
} else {
|
||||||
clone := &pb.Claim{}
|
clone := &pb.Claim{}
|
||||||
proto.Merge(clone, claim.GetProtobuf())
|
proto.Merge(clone, c.GetProtobuf())
|
||||||
proto.ClearAllExtensions(clone.PublisherSignature)
|
proto.ClearAllExtensions(clone.PublisherSignature)
|
||||||
clone.PublisherSignature = nil
|
clone.PublisherSignature = nil
|
||||||
return proto.Marshal(clone)
|
return proto.Marshal(clone)
|
||||||
|
|
|
@ -35,8 +35,8 @@ func GetClaimSignatureDigest(claimAddress [25]byte, certificateId [20]byte, seri
|
||||||
return [32]byte(digest)
|
return [32]byte(digest)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) GetCertificatePublicKey() (*btcec.PublicKey, error) {
|
func (c *ClaimHelper) GetCertificatePublicKey() (*btcec.PublicKey, error) {
|
||||||
derBytes := claim.GetCertificate().GetPublicKey()
|
derBytes := c.GetCertificate().GetPublicKey()
|
||||||
pub := publicKeyInfo{}
|
pub := publicKeyInfo{}
|
||||||
asn1.Unmarshal(derBytes, &pub)
|
asn1.Unmarshal(derBytes, &pub)
|
||||||
pubkey_bytes := []byte(pub.PublicKey.Bytes)
|
pubkey_bytes := []byte(pub.PublicKey.Bytes)
|
||||||
|
@ -47,13 +47,13 @@ func (claim *ClaimHelper) GetCertificatePublicKey() (*btcec.PublicKey, error) {
|
||||||
return p, err
|
return p, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) VerifyDigest(certificate *ClaimHelper, signature [64]byte, digest [32]byte) bool {
|
func (c *ClaimHelper) VerifyDigest(certificate *ClaimHelper, signature [64]byte, digest [32]byte) bool {
|
||||||
public_key, err := certificate.GetCertificatePublicKey()
|
public_key, err := certificate.GetCertificatePublicKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if claim.PublisherSignature.SignatureType.String() == SECP256k1 {
|
if c.PublisherSignature.SignatureType.String() == SECP256k1 {
|
||||||
R := &big.Int{}
|
R := &big.Int{}
|
||||||
S := &big.Int{}
|
S := &big.Int{}
|
||||||
R.SetBytes(signature[0:32])
|
R.SetBytes(signature[0:32])
|
||||||
|
@ -63,8 +63,8 @@ func (claim *ClaimHelper) VerifyDigest(certificate *ClaimHelper, signature [64]b
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) ValidateClaimSignatureBytes(certificate *ClaimHelper, claimAddress [25]byte, certificateId [20]byte, blockchainName string) (bool, error) {
|
func (c *ClaimHelper) ValidateClaimSignatureBytes(certificate *ClaimHelper, claimAddress [25]byte, certificateId [20]byte, blockchainName string) (bool, error) {
|
||||||
signature := claim.GetPublisherSignature()
|
signature := c.GetPublisherSignature()
|
||||||
if signature == nil {
|
if signature == nil {
|
||||||
return false, errors.New("claim does not have a signature")
|
return false, errors.New("claim does not have a signature")
|
||||||
}
|
}
|
||||||
|
@ -79,16 +79,16 @@ func (claim *ClaimHelper) ValidateClaimSignatureBytes(certificate *ClaimHelper,
|
||||||
return false, errors.New("invalid address")
|
return false, errors.New("invalid address")
|
||||||
}
|
}
|
||||||
|
|
||||||
serializedNoSig, err := claim.SerializedNoSignature()
|
serializedNoSig, err := c.SerializedNoSignature()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("serialization error")
|
return false, errors.New("serialization error")
|
||||||
}
|
}
|
||||||
|
|
||||||
claimDigest := GetClaimSignatureDigest(claimAddress, certificateId, serializedNoSig)
|
claimDigest := GetClaimSignatureDigest(claimAddress, certificateId, serializedNoSig)
|
||||||
return claim.VerifyDigest(certificate, signatureBytes, claimDigest), nil
|
return c.VerifyDigest(certificate, signatureBytes, claimDigest), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (claim *ClaimHelper) ValidateClaimSignature(certificate *ClaimHelper, claimAddress string, certificateId string, blockchainName string) (bool, error) {
|
func (c *ClaimHelper) ValidateClaimSignature(certificate *ClaimHelper, claimAddress string, certificateId string, blockchainName string) (bool, error) {
|
||||||
addressBytes, err := address.DecodeAddress(claimAddress, blockchainName)
|
addressBytes, err := address.DecodeAddress(claimAddress, blockchainName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
@ -101,5 +101,5 @@ func (claim *ClaimHelper) ValidateClaimSignature(certificate *ClaimHelper, claim
|
||||||
for i := range certificateIdBytes {
|
for i := range certificateIdBytes {
|
||||||
certificateIdBytes[i] = certificateIdSlice[i]
|
certificateIdBytes[i] = certificateIdSlice[i]
|
||||||
}
|
}
|
||||||
return claim.ValidateClaimSignatureBytes(certificate, addressBytes, certificateIdBytes, blockchainName)
|
return c.ValidateClaimSignatureBytes(certificate, addressBytes, certificateIdBytes, blockchainName)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue