mirror of
https://github.com/mainflux/mainflux.git
synced 2025-05-14 19:29:11 +08:00

* NOISSUE- Add OPC-UA adapter Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * NOISSUE - Add opc-adapter PoC, docker and vendor Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Convert OPC messages to SenML Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add gopcua package Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * lora-adapter typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add OPC Reader Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Typo fix Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Typo fix Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Update copyright headers Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix reviews Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix reviews Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add opc config Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add all opc envars in the config Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Config typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add route map Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Use opcua package instead of opc Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix OPCUA typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Rm MQTT sub Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Move interefaces to root Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Fix revieews and typo Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Update Gopkg.toml Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com> * Add all envars into .env Signed-off-by: Manuel Imperiale <manuel.imperiale@gmail.com>
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
// Copyright 2018-2019 opcua authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package uasc
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gopcua/opcua/ua"
|
|
)
|
|
|
|
// SymmetricSecurityHeader represents a Symmetric Algorithm Security Header in OPC UA Secure Conversation.
|
|
type SymmetricSecurityHeader struct {
|
|
TokenID uint32
|
|
}
|
|
|
|
// NewSymmetricSecurityHeader creates a new OPC UA Secure Conversation Symmetric Algorithm Security Header.
|
|
func NewSymmetricSecurityHeader(token uint32) *SymmetricSecurityHeader {
|
|
return &SymmetricSecurityHeader{
|
|
TokenID: token,
|
|
}
|
|
}
|
|
|
|
func (h *SymmetricSecurityHeader) Decode(b []byte) (int, error) {
|
|
buf := ua.NewBuffer(b)
|
|
h.TokenID = buf.ReadUint32()
|
|
return buf.Pos(), buf.Error()
|
|
}
|
|
|
|
func (h *SymmetricSecurityHeader) Encode() ([]byte, error) {
|
|
buf := ua.NewBuffer(nil)
|
|
buf.WriteUint32(h.TokenID)
|
|
return buf.Bytes(), buf.Error()
|
|
}
|
|
|
|
// String returns Header in string.
|
|
func (h *SymmetricSecurityHeader) String() string {
|
|
return fmt.Sprintf(
|
|
"TokenID: %d",
|
|
h.TokenID,
|
|
)
|
|
}
|
|
|
|
// Len returns the Header Length in bytes.
|
|
func (h *SymmetricSecurityHeader) Len() int {
|
|
return 4
|
|
}
|