| 495 | } |
| 496 | |
| 497 | func encodeProto(msg proto.Message, sender []byte, signFn signFunc, nonce uint64, replyFlag bool) (bytes []byte, err error) { |
| 498 | var anything *any.Any |
| 499 | var sign []byte |
| 500 | if anything, err = ptypes.MarshalAny(msg); err != nil { |
| 501 | err = errors.Errorf("MarshalAny: %w", err) |
| 502 | return |
| 503 | } |
| 504 | if signFn != nil { |
| 505 | if sign, err = signFn(anything.Value); err != nil { |
| 506 | err = errors.Errorf("signFn: %w", err) |
| 507 | return |
| 508 | } |
| 509 | } |
| 510 | p := &Package{ |
| 511 | Anything: anything, |
| 512 | Sender: sender, |
| 513 | Signature: sign, |
| 514 | RequestNonce: nonce, |
| 515 | ReplyFlag: replyFlag, |
| 516 | } |
| 517 | if bytes, err = proto.Marshal(p); err != nil { |
| 518 | err = errors.Errorf("Marshal: %w", err) |
| 519 | } |
| 520 | return |
| 521 | } |
| 522 | |
| 523 | func decodeBytes(bytes []byte, veifyfn verifyFunc) (pa *Package, ptr ptypes.DynamicAny, err error) { |
| 524 | pa = &Package{} |