MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / GetAppSKey

Method GetAppSKey

pkg/interop/client.go:191–216  ·  view source on GitHub ↗

GetAppSKey performs AppSKey request according to LoRaWAN Backend Interfaces specification.

(
	ctx context.Context, asID string, req *ttnpb.SessionKeyRequest,
)

Source from the content-addressed store, hash-verified

189
190// GetAppSKey performs AppSKey request according to LoRaWAN Backend Interfaces specification.
191func (cl joinServerHTTPClient) GetAppSKey(
192 ctx context.Context, asID string, req *ttnpb.SessionKeyRequest,
193) (*ttnpb.AppSKeyResponse, error) {
194 interopAns := &AppSKeyAns{}
195 if err := cl.exchange(ctx, jsRPCPaths.appSKey, &AppSKeyReq{
196 AsJsMessageHeader: AsJsMessageHeader{
197 MessageHeader: MessageHeader{
198 ProtocolVersion: cl.protocol,
199 MessageType: MessageTypeAppSKeyReq,
200 },
201 SenderID: asID,
202 ReceiverID: EUI64(types.MustEUI64(req.JoinEui).OrZero()),
203 },
204 DevEUI: EUI64(types.MustEUI64(req.DevEui).OrZero()),
205 SessionKeyID: Buffer(req.SessionKeyId),
206 }, interopAns); err != nil {
207 return nil, err
208 }
209 if err := parseResult(interopAns.Result); err != nil {
210 return nil, err
211 }
212
213 return &ttnpb.AppSKeyResponse{
214 AppSKey: (*ttnpb.KeyEnvelope)(interopAns.AppSKey),
215 }, nil
216}
217
218var (
219 errMissingNSID = errors.DefineFailedPrecondition("missing_ns_id", "missing NSID")

Callers

nothing calls this directly

Calls 6

exchangeMethod · 0.95
MustEUI64Function · 0.92
BufferTypeAlias · 0.85
parseResultFunction · 0.85
EUI64TypeAlias · 0.70
OrZeroMethod · 0.45

Tested by

no test coverage detected