60
}
61
63
>
if err := proto.Unmarshal(plaintext, completion); err != nil {
64
return nil, err
65
}
67
return nil, err
68
}
70
}
71
72
>
func validateCompletion(completion *tokenspb.NexusOperationCompletion) error {
callback_token.go
73
>
hasCHASMRef := len(completion.GetComponentRef()) > 0
74
>
hasHSMRef := completion.GetNamespaceId() != "" ||
75
>
completion.GetWorkflowId() != "" ||
76
>
completion.GetRunId() != "" ||
77
>
completion.GetRef() != nil
78
>
isCompleteHSM := completion.GetNamespaceId() != "" &&
79
>
completion.GetWorkflowId() != "" &&
80
>
completion.GetRunId() != "" &&
81
>
completion.GetRef() != nil
82
>
83
>
switch {
84
case hasCHASMRef && hasHSMRef:
85
return serviceerror.NewInvalidArgument("callback token contains both HSM and CHASM fields")