// 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 ua import "strings" // additional enum values which are not generated. const ( NodeClassAll NodeClass = 0xff ) // Identifiers assigned to Attributes. // // Specification: Part 6, A.1 type AttributeID uint32 const ( AttributeIDInvalid AttributeID = 0 AttributeIDNodeID AttributeID = 1 AttributeIDNodeClass AttributeID = 2 AttributeIDBrowseName AttributeID = 3 AttributeIDDisplayName AttributeID = 4 AttributeIDDescription AttributeID = 5 AttributeIDWriteMask AttributeID = 6 AttributeIDUserWriteMask AttributeID = 7 AttributeIDIsAbstract AttributeID = 8 AttributeIDSymmetric AttributeID = 9 AttributeIDInverseName AttributeID = 10 AttributeIDContainsNoLoops AttributeID = 11 AttributeIDEventNotifier AttributeID = 12 AttributeIDValue AttributeID = 13 AttributeIDDataType AttributeID = 14 AttributeIDValueRank AttributeID = 15 AttributeIDArrayDimensions AttributeID = 16 AttributeIDAccessLevel AttributeID = 17 AttributeIDUserAccessLevel AttributeID = 18 AttributeIDMinimumSamplingInterval AttributeID = 19 AttributeIDHistorizing AttributeID = 20 AttributeIDExecutable AttributeID = 21 AttributeIDUserExecutable AttributeID = 22 AttributeIDDataTypeDefinition AttributeID = 23 AttributeIDRolePermissions AttributeID = 24 AttributeIDUserRolePermissions AttributeID = 25 AttributeIDAccessRestrictions AttributeID = 26 AttributeIDAccessLevelEx AttributeID = 27 ) // Built-in type identifiers. // // All OPC UA DataEncodings are based on rules that are defined for a standard // set of built-in types. These built-in types are then used to construct // structures, arrays and messages. // // Specification: Part 6, 5.1.2 type TypeID byte const ( TypeIDNull TypeID = 0 // not part of specification but some servers (e.g. Prosys) return it anyway TypeIDBoolean TypeID = 1 TypeIDSByte TypeID = 2 TypeIDByte TypeID = 3 TypeIDInt16 TypeID = 4 TypeIDUint16 TypeID = 5 TypeIDInt32 TypeID = 6 TypeIDUint32 TypeID = 7 TypeIDInt64 TypeID = 8 TypeIDUint64 TypeID = 9 TypeIDFloat TypeID = 10 TypeIDDouble TypeID = 11 TypeIDString TypeID = 12 TypeIDDateTime TypeID = 13 TypeIDGUID TypeID = 14 TypeIDByteString TypeID = 15 TypeIDXMLElement TypeID = 16 TypeIDNodeID TypeID = 17 TypeIDExpandedNodeID TypeID = 18 TypeIDStatusCode TypeID = 19 TypeIDQualifiedName TypeID = 20 TypeIDLocalizedText TypeID = 21 TypeIDExtensionObject TypeID = 22 TypeIDDataValue TypeID = 23 TypeIDVariant TypeID = 24 TypeIDDiagnosticInfo TypeID = 25 ) // SecurityPolicyURI is a listing of UA security policy URIs // Specification: Part 7, 6.6.161-166 const ( SecurityPolicyURIPrefix = "http://opcfoundation.org/UA/SecurityPolicy#" SecurityPolicyURINone = "http://opcfoundation.org/UA/SecurityPolicy#None" SecurityPolicyURIBasic128Rsa15 = "http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15" SecurityPolicyURIBasic256 = "http://opcfoundation.org/UA/SecurityPolicy#Basic256" SecurityPolicyURIBasic256Sha256 = "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256" SecurityPolicyURIAes128Sha256RsaOaep = "http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep" SecurityPolicyURIAes256Sha256RsaPss = "http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss" ) var SecurityPolicyURIs = map[string]string{ "None": SecurityPolicyURINone, "Basic128Rsa15": SecurityPolicyURIBasic128Rsa15, "Basic256": SecurityPolicyURIBasic256, "Basic256Sha256": SecurityPolicyURIBasic256Sha256, "Aes128Sha256RsaOaep": SecurityPolicyURIAes128Sha256RsaOaep, "Aes256Sha256RsaPss": SecurityPolicyURIAes256Sha256RsaPss, } // FormatSecurityPolicy converts a short name for a security policy into a // canonical policy URI. func FormatSecurityPolicyURI(policy string) string { if policy == "" { return "" } if p, ok := SecurityPolicyURIs[policy]; ok { return p } if !strings.HasPrefix(policy, SecurityPolicyURIPrefix) { return SecurityPolicyURIPrefix + policy } return policy }