mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-13 10:33:35 +00:00
rebase: make use of v0.0.8 of kmip go client
The new release has some important fixes available with it Ref: https://github.com/ThalesGroup/kmip-go/releases/tag/v0.0.8 Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
This commit is contained in:
committed by
mergify[bot]
parent
d63185b061
commit
0f2daca5c2
2
vendor/github.com/gemalto/kmip-go/.golangci.yml
generated
vendored
2
vendor/github.com/gemalto/kmip-go/.golangci.yml
generated
vendored
@ -58,7 +58,6 @@ linters-settings:
|
||||
gocritic:
|
||||
# Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty
|
||||
disabled-checks:
|
||||
- commentFormatting
|
||||
revive:
|
||||
ignore-generated-header: true
|
||||
wsl:
|
||||
@ -120,7 +119,6 @@ linters:
|
||||
- goprintffuncname
|
||||
- gosec
|
||||
- grouper
|
||||
- ifshort
|
||||
- importas
|
||||
# - ireturn # there are valid use cases for this pattern. too strict.
|
||||
## - lll # checks line length. not enforced
|
||||
|
93
vendor/github.com/gemalto/kmip-go/base_objects.go
generated
vendored
93
vendor/github.com/gemalto/kmip-go/base_objects.go
generated
vendored
@ -101,17 +101,17 @@ type AttestationCredentialValue struct {
|
||||
// A Key Block object is a structure (see Table 7) used to encapsulate all of the information that is
|
||||
// closely associated with a cryptographic key. It contains a Key Value of one of the following Key Format Types:
|
||||
//
|
||||
// · Raw – This is a key that contains only cryptographic key material, encoded as a string of bytes.
|
||||
// · Opaque – This is an encoded key for which the encoding is unknown to the key management system.
|
||||
// It is encoded as a string of bytes.
|
||||
// · PKCS1 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#1 object.
|
||||
// · PKCS8 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#8 object, supporting both
|
||||
// the RSAPrivateKey syntax and EncryptedPrivateKey.
|
||||
// · X.509 – This is an encoded object, expressed as a DER-encoded ASN.1 X.509 object.
|
||||
// · ECPrivateKey – This is an ASN.1 encoded elliptic curve private key.
|
||||
// · Several Transparent Key types – These are algorithm-specific structures containing defined values
|
||||
// for the various key types, as defined in Section 2.1.7.
|
||||
// · Extensions – These are vendor-specific extensions to allow for proprietary or legacy key formats.
|
||||
// - Raw – This is a key that contains only cryptographic key material, encoded as a string of bytes.
|
||||
// - Opaque – This is an encoded key for which the encoding is unknown to the key management system.
|
||||
// It is encoded as a string of bytes.
|
||||
// - PKCS1 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#1 object.
|
||||
// - PKCS8 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#8 object, supporting both
|
||||
// the RSAPrivateKey syntax and EncryptedPrivateKey.
|
||||
// - X.509 – This is an encoded object, expressed as a DER-encoded ASN.1 X.509 object.
|
||||
// - ECPrivateKey – This is an ASN.1 encoded elliptic curve private key.
|
||||
// - Several Transparent Key types – These are algorithm-specific structures containing defined values
|
||||
// for the various key types, as defined in Section 2.1.7.
|
||||
// - Extensions – These are vendor-specific extensions to allow for proprietary or legacy key formats.
|
||||
//
|
||||
// The Key Block MAY contain the Key Compression Type, which indicates the format of the elliptic curve public
|
||||
// key. By default, the public key is uncompressed.
|
||||
@ -119,13 +119,12 @@ type AttestationCredentialValue struct {
|
||||
// The Key Block also has the Cryptographic Algorithm and the Cryptographic Length of the key contained
|
||||
// in the Key Value field. Some example values are:
|
||||
//
|
||||
// · RSA keys are typically 1024, 2048 or 3072 bits in length.
|
||||
// · 3DES keys are typically from 112 to 192 bits (depending upon key length and the presence of parity bits).
|
||||
// · AES keys are 128, 192 or 256 bits in length.
|
||||
// - RSA keys are typically 1024, 2048 or 3072 bits in length.
|
||||
// - 3DES keys are typically from 112 to 192 bits (depending upon key length and the presence of parity bits).
|
||||
// - AES keys are 128, 192 or 256 bits in length.
|
||||
//
|
||||
// The Key Block SHALL contain a Key Wrapping Data structure if the key in the Key Value field is
|
||||
// wrapped (i.e., encrypted, or MACed/signed, or both).
|
||||
|
||||
type KeyBlock struct {
|
||||
KeyFormatType kmip14.KeyFormatType
|
||||
KeyCompressionType kmip14.KeyCompressionType `ttlv:",omitempty"`
|
||||
@ -139,13 +138,13 @@ type KeyBlock struct {
|
||||
//
|
||||
// The Key Value is used only inside a Key Block and is either a Byte String or a structure (see Table 8):
|
||||
//
|
||||
// · The Key Value structure contains the key material, either as a byte string or as a Transparent Key
|
||||
// structure (see Section 2.1.7), and OPTIONAL attribute information that is associated and encapsulated
|
||||
// with the key material. This attribute information differs from the attributes associated with Managed
|
||||
// Objects, and is obtained via the Get Attributes operation, only by the fact that it is encapsulated with
|
||||
// (and possibly wrapped with) the key material itself.
|
||||
// · The Key Value Byte String is either the wrapped TTLV-encoded (see Section 9.1) Key Value structure, or
|
||||
// the wrapped un-encoded value of the Byte String Key Material field.
|
||||
// - The Key Value structure contains the key material, either as a byte string or as a Transparent Key
|
||||
// structure (see Section 2.1.7), and OPTIONAL attribute information that is associated and encapsulated
|
||||
// with the key material. This attribute information differs from the attributes associated with Managed
|
||||
// Objects, and is obtained via the Get Attributes operation, only by the fact that it is encapsulated with
|
||||
// (and possibly wrapped with) the key material itself.
|
||||
// - The Key Value Byte String is either the wrapped TTLV-encoded (see Section 9.1) Key Value structure, or
|
||||
// the wrapped un-encoded value of the Byte String Key Material field.
|
||||
//
|
||||
// TODO: Unmarshaler impl which unmarshals correct KeyMaterial type.
|
||||
type KeyValue struct {
|
||||
@ -163,16 +162,16 @@ type KeyValue struct {
|
||||
//
|
||||
// This structure contains fields for:
|
||||
//
|
||||
// · A Wrapping Method, which indicates the method used to wrap the Key Value.
|
||||
// · Encryption Key Information, which contains the Unique Identifier (see 3.1) value of the encryption key
|
||||
// and associated cryptographic parameters.
|
||||
// · MAC/Signature Key Information, which contains the Unique Identifier value of the MAC/signature key
|
||||
// and associated cryptographic parameters.
|
||||
// · A MAC/Signature, which contains a MAC or signature of the Key Value.
|
||||
// · An IV/Counter/Nonce, if REQUIRED by the wrapping method.
|
||||
// · An Encoding Option, specifying the encoding of the Key Material within the Key Value structure of the
|
||||
// Key Block that has been wrapped. If No Encoding is specified, then the Key Value structure SHALL NOT contain
|
||||
// any attributes.
|
||||
// - A Wrapping Method, which indicates the method used to wrap the Key Value.
|
||||
// - Encryption Key Information, which contains the Unique Identifier (see 3.1) value of the encryption key
|
||||
// and associated cryptographic parameters.
|
||||
// - MAC/Signature Key Information, which contains the Unique Identifier value of the MAC/signature key
|
||||
// and associated cryptographic parameters.
|
||||
// - A MAC/Signature, which contains a MAC or signature of the Key Value.
|
||||
// - An IV/Counter/Nonce, if REQUIRED by the wrapping method.
|
||||
// - An Encoding Option, specifying the encoding of the Key Material within the Key Value structure of the
|
||||
// Key Block that has been wrapped. If No Encoding is specified, then the Key Value structure SHALL NOT contain
|
||||
// any attributes.
|
||||
//
|
||||
// If wrapping is used, then the whole Key Value structure is wrapped unless otherwise specified by the
|
||||
// Wrapping Method. The algorithms used for wrapping are given by the Cryptographic Algorithm attributes of
|
||||
@ -184,17 +183,17 @@ type KeyValue struct {
|
||||
//
|
||||
// The following wrapping methods are currently defined:
|
||||
//
|
||||
// · Encrypt only (i.e., encryption using a symmetric key or public key, or authenticated encryption algorithms that use a single key).
|
||||
// · MAC/sign only (i.e., either MACing the Key Value with a symmetric key, or signing the Key Value with a private key).
|
||||
// · Encrypt then MAC/sign.
|
||||
// · MAC/sign then encrypt.
|
||||
// · TR-31.
|
||||
// · Extensions.
|
||||
// - Encrypt only (i.e., encryption using a symmetric key or public key, or authenticated encryption algorithms that use a single key).
|
||||
// - MAC/sign only (i.e., either MACing the Key Value with a symmetric key, or signing the Key Value with a private key).
|
||||
// - Encrypt then MAC/sign.
|
||||
// - MAC/sign then encrypt.
|
||||
// - TR-31.
|
||||
// - Extensions.
|
||||
//
|
||||
// The following encoding options are currently defined:
|
||||
//
|
||||
// · No Encoding (i.e., the wrapped un-encoded value of the Byte String Key Material field in the Key Value structure).
|
||||
// · TTLV Encoding (i.e., the wrapped TTLV-encoded Key Value structure).
|
||||
// - No Encoding (i.e., the wrapped un-encoded value of the Byte String Key Material field in the Key Value structure).
|
||||
// - TTLV Encoding (i.e., the wrapped TTLV-encoded Key Value structure).
|
||||
type KeyWrappingData struct {
|
||||
WrappingMethod kmip14.WrappingMethod
|
||||
EncryptionKeyInformation *EncryptionKeyInformation
|
||||
@ -254,9 +253,9 @@ type TransparentDSAPublicKey struct {
|
||||
//
|
||||
// One of the following SHALL be present (refer to [PKCS#1]):
|
||||
//
|
||||
// · Private Exponent,
|
||||
// · P and Q (the first two prime factors of Modulus), or
|
||||
// · Prime Exponent P and Prime Exponent Q.
|
||||
// - Private Exponent,
|
||||
// - P and Q (the first two prime factors of Modulus), or
|
||||
// - Prime Exponent P and Prime Exponent Q.
|
||||
type TransparentRSAPrivateKey struct {
|
||||
Modulus *big.Int `validate:"required"`
|
||||
PrivateExponent, PublicExponent *big.Int
|
||||
@ -395,10 +394,10 @@ type TransparentECPublicKey struct {
|
||||
//
|
||||
// The Template-Attribute, Common Template-Attribute, Private Key Template-Attribute, and Public Key
|
||||
// Template-Attribute structures are defined identically as follows:
|
||||
// type TemplateAttribute struct {
|
||||
// Attribute []Attribute
|
||||
// }
|
||||
|
||||
//
|
||||
// type TemplateAttribute struct {
|
||||
// Attribute []Attribute
|
||||
// }
|
||||
type TemplateAttribute struct {
|
||||
Name []Name
|
||||
Attribute []Attribute
|
||||
|
4
vendor/github.com/gemalto/kmip-go/kmip14/kmip_1_4.go
generated
vendored
4
vendor/github.com/gemalto/kmip-go/kmip14/kmip_1_4.go
generated
vendored
@ -12,12 +12,12 @@ import (
|
||||
"github.com/gemalto/kmip-go/ttlv"
|
||||
)
|
||||
|
||||
// nolint:gochecknoinits
|
||||
//nolint:gochecknoinits
|
||||
func init() {
|
||||
Register(&ttlv.DefaultRegistry)
|
||||
}
|
||||
|
||||
// Register registers the 1.4 enumeration values with the registry.
|
||||
// Registers the 1.4 enumeration values with the registry.
|
||||
func Register(registry *ttlv.Registry) {
|
||||
RegisterGeneratedDefinitions(registry)
|
||||
}
|
||||
|
1
vendor/github.com/gemalto/kmip-go/op_destroy.go
generated
vendored
1
vendor/github.com/gemalto/kmip-go/op_destroy.go
generated
vendored
@ -5,7 +5,6 @@ import (
|
||||
)
|
||||
|
||||
// DestroyRequestPayload ////////////////////////////////////////
|
||||
//
|
||||
type DestroyRequestPayload struct {
|
||||
UniqueIdentifier string
|
||||
}
|
||||
|
1
vendor/github.com/gemalto/kmip-go/op_get.go
generated
vendored
1
vendor/github.com/gemalto/kmip-go/op_get.go
generated
vendored
@ -7,7 +7,6 @@ import (
|
||||
)
|
||||
|
||||
// GetRequestPayload ////////////////////////////////////////
|
||||
//
|
||||
type GetRequestPayload struct {
|
||||
UniqueIdentifier string
|
||||
}
|
||||
|
124
vendor/github.com/gemalto/kmip-go/ttlv/decoder.go
generated
vendored
124
vendor/github.com/gemalto/kmip-go/ttlv/decoder.go
generated
vendored
@ -26,31 +26,31 @@ var ErrUnexpectedValue = errors.New("no field was found to unmarshal value into"
|
||||
// Unmarshal maps TTLV values to golang values according to the following
|
||||
// rules:
|
||||
//
|
||||
// 1. If the destination value is interface{}, it will be set to the result
|
||||
// of TTLV.Value()
|
||||
// 2. If the destination implements Unmarshaler, that will be called.
|
||||
// 3. If the destination is a slice (except for []byte), append the
|
||||
// unmarshalled value to the slice
|
||||
// 4. Structure unmarshals into a struct. See rules
|
||||
// below for matching struct fields to the values in the Structure.
|
||||
// 5. Interval unmarshals into an int64
|
||||
// 6. DateTime and DateTimeExtended ummarshal into time.Time
|
||||
// 7. ByteString unmarshals to a []byte
|
||||
// 8. TextString unmarshals into a string
|
||||
// 9. Boolean unmarshals into a bool
|
||||
// 10. Enumeration can unmarshal into an int, int8, int16, int32, or their
|
||||
// 1. If the destination value is interface{}, it will be set to the result
|
||||
// of TTLV.Value()
|
||||
// 2. If the destination implements Unmarshaler, that will be called.
|
||||
// 3. If the destination is a slice (except for []byte), append the
|
||||
// unmarshalled value to the slice
|
||||
// 4. Structure unmarshals into a struct. See rules
|
||||
// below for matching struct fields to the values in the Structure.
|
||||
// 5. Interval unmarshals into an int64
|
||||
// 6. DateTime and DateTimeExtended ummarshal into time.Time
|
||||
// 7. ByteString unmarshals to a []byte
|
||||
// 8. TextString unmarshals into a string
|
||||
// 9. Boolean unmarshals into a bool
|
||||
// 10. Enumeration can unmarshal into an int, int8, int16, int32, or their
|
||||
// uint counterparts. If the KMIP value overflows the destination, a
|
||||
// *UnmarshalerError with cause ErrIntOverflow is returned.
|
||||
// 11. Integer can unmarshal to the same types as Enumeration, with the
|
||||
// 11. Integer can unmarshal to the same types as Enumeration, with the
|
||||
// same overflow check.
|
||||
// 12. LongInteger unmarshals to int64 or uint64
|
||||
// 13. BitInteger unmarshals to big.Int.
|
||||
// 12. LongInteger unmarshals to int64 or uint64
|
||||
// 13. BitInteger unmarshals to big.Int.
|
||||
//
|
||||
// If the destination value is not a supported type, an *UnmarshalerError with
|
||||
// cause ErrUnsupportedTypeError is returned. If the source value's type is not recognized,
|
||||
// *UnmarshalerError with cause ErrInvalidType is returned.
|
||||
//
|
||||
// Unmarshaling Structure
|
||||
// # Unmarshaling Structure
|
||||
//
|
||||
// Unmarshal will try to match the values in the Structure with the fields in the
|
||||
// destination struct. Structure is an array of values, while a struct is more like
|
||||
@ -62,55 +62,59 @@ var ErrUnexpectedValue = errors.New("no field was found to unmarshal value into"
|
||||
// and type of the field. It uses the following rules, in order:
|
||||
//
|
||||
// 1. If the type of a field is a struct, and the struct contains a field named "TTLVTag", and the field
|
||||
// has a "ttlv" struct tag, the value of the struct tag will be parsed using ParseTag(). If
|
||||
// parsing fails, an error is returned. The type and value of the TTLVTag field is ignored.
|
||||
// In this example, the F field will map to TagDeactivationDate:
|
||||
// has a "ttlv" struct tag, the value of the struct tag will be parsed using ParseTag(). If
|
||||
// parsing fails, an error is returned. The type and value of the TTLVTag field is ignored.
|
||||
//
|
||||
// type Bar struct {
|
||||
// F Foo
|
||||
// }
|
||||
// type Foo struct {
|
||||
// TTLVTag struct{} `ttlv:"DeactivationDate"`
|
||||
// }
|
||||
// In this example, the F field will map to TagDeactivationDate.
|
||||
//
|
||||
// If Bar uses a struct tag on F indicating a different tag, it is an error:
|
||||
// type Bar struct {
|
||||
// F Foo
|
||||
// }
|
||||
//
|
||||
// type Foo struct {
|
||||
// TTLVTag struct{} `ttlv:"DeactivationDate"`
|
||||
// }
|
||||
//
|
||||
// If Bar uses a struct tag on F indicating a different tag, it is an error:
|
||||
//
|
||||
// type Bar struct {
|
||||
// F Foo `ttlv:"DerivationData"` // this will cause an ErrTagConflict
|
||||
// // because conflict Bar's field tag
|
||||
// // conflicts with Foo's intrinsic tag
|
||||
// F2 Foo `ttlv:"0x420034"` // the value can also be hex
|
||||
// }
|
||||
//
|
||||
// type Bar struct {
|
||||
// F Foo `ttlv:"DerivationData"` // this will cause an ErrTagConflict
|
||||
// // because conflict Bar's field tag
|
||||
// // conflicts with Foo's intrinsic tag
|
||||
// F2 Foo `ttlv:"0x420034"` // the value can also be hex
|
||||
// }
|
||||
// 2. If the type of the field is a struct, and the struct contains a field named "TTLVTag",
|
||||
// and that field is of type ttlv.Tag and is not empty, the value of the field will be the
|
||||
// inferred Tag. For example:
|
||||
// and that field is of type ttlv.Tag and is not empty, the value of the field will be the
|
||||
// inferred Tag. For example:
|
||||
//
|
||||
// type Foo struct {
|
||||
// TTLVTag ttlv.Tag
|
||||
// }
|
||||
// f := Foo{TTLVTag: ttlv.TagState}
|
||||
// type Foo struct {
|
||||
// TTLVTag ttlv.Tag
|
||||
// }
|
||||
// f := Foo{TTLVTag: ttlv.TagState}
|
||||
//
|
||||
// This allows you to dynamically set the KMIP tag that a value will marshal to.
|
||||
//
|
||||
// This allows you to dynamically set the KMIP tag that a value will marshal to.
|
||||
// 3. The "ttlv" struct tag can be used to indicate the tag for a field. The value will
|
||||
// be parsed with ParseTag()
|
||||
// be parsed with ParseTag():
|
||||
//
|
||||
// type Bar struct {
|
||||
// F Foo `ttlv:"DerivationData"`
|
||||
// }
|
||||
// type Bar struct {
|
||||
// F Foo `ttlv:"DerivationData"`
|
||||
// }
|
||||
//
|
||||
// 4. The name of the field is parsed with ParseTag():
|
||||
//
|
||||
// type Bar struct {
|
||||
// DerivationData int
|
||||
// }
|
||||
// type Bar struct {
|
||||
// DerivationData int
|
||||
// }
|
||||
//
|
||||
// 5. The name of the field's type is parsed with ParseTab():
|
||||
//
|
||||
// type DerivationData int
|
||||
// type DerivationData int
|
||||
//
|
||||
// type Bar struct {
|
||||
// dd DerivationData
|
||||
// }
|
||||
// type Bar struct {
|
||||
// dd DerivationData
|
||||
// }
|
||||
//
|
||||
// If no tag value can be inferred, the field is ignored. Multiple fields
|
||||
// *cannot* map to the same KMIP tag. If they do, an ErrTagConflict will
|
||||
@ -122,13 +126,13 @@ var ErrUnexpectedValue = errors.New("no field was found to unmarshal value into"
|
||||
// If the value cannot be matched with a field, Unmarshal will look for
|
||||
// the first field with the "any" struct flag set and unmarshal into that:
|
||||
//
|
||||
// type Foo struct {
|
||||
// Comment string // the Comment will unmarshal into this
|
||||
// EverythingElse []interface{} `,any` // all other values will unmarshal into this
|
||||
// AnotherAny []interface{} `,any` // allowed, but ignored. first any field will always match
|
||||
// NotLegal []interface{} `TagComment,any` // you cannot specify a tag and the any flag.
|
||||
// // will return error
|
||||
// }
|
||||
// type Foo struct {
|
||||
// Comment string // the Comment will unmarshal into this
|
||||
// EverythingElse []interface{} `,any` // all other values will unmarshal into this
|
||||
// AnotherAny []interface{} `,any` // allowed, but ignored. first any field will always match
|
||||
// NotLegal []interface{} `TagComment,any` // you cannot specify a tag and the any flag.
|
||||
// // will return error
|
||||
// }
|
||||
//
|
||||
// If after applying these rules no destination field is found, the KMIP value is ignored.
|
||||
func Unmarshal(ttlv TTLV, v interface{}) error {
|
||||
@ -318,7 +322,7 @@ func (dec *Decoder) unmarshal(val reflect.Value, ttlv TTLV) error {
|
||||
}
|
||||
|
||||
val.SetBool(ttlv.ValueBoolean())
|
||||
// nolint:dupl
|
||||
//nolint:dupl
|
||||
case TypeEnumeration:
|
||||
switch val.Kind() {
|
||||
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32:
|
||||
@ -338,7 +342,7 @@ func (dec *Decoder) unmarshal(val reflect.Value, ttlv TTLV) error {
|
||||
default:
|
||||
return typeMismatchErr()
|
||||
}
|
||||
// nolint:dupl
|
||||
//nolint:dupl
|
||||
case TypeInteger:
|
||||
switch val.Kind() {
|
||||
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32:
|
||||
|
77
vendor/github.com/gemalto/kmip-go/ttlv/encoder.go
generated
vendored
77
vendor/github.com/gemalto/kmip-go/ttlv/encoder.go
generated
vendored
@ -40,56 +40,69 @@ var (
|
||||
// and from the inferred KMIP tag, according to these rules:
|
||||
//
|
||||
// 1. If the value is a TTLV, it is copied byte for byte
|
||||
// 2. If the value implements Marshaler, call that
|
||||
// 3. If the struct field has an "omitempty" flag, and the value is
|
||||
// zero, skip the field:
|
||||
//
|
||||
// type Foo struct {
|
||||
// Comment string `ttlv:,omitempty`
|
||||
// }
|
||||
// 2. If the value implements Marshaler, call that
|
||||
//
|
||||
// 3. If the struct field has an "omitempty" flag, and the value is
|
||||
// zero, skip the field:
|
||||
//
|
||||
// type Foo struct {
|
||||
// Comment string `ttlv:,omitempty`
|
||||
// }
|
||||
//
|
||||
// 4. If the value is a slice (except []byte) or array, marshal all
|
||||
// values concatenated
|
||||
// values concatenated
|
||||
//
|
||||
// 5. If a tag has not been inferred at this point, return *MarshalerError with
|
||||
// cause ErrNoTag
|
||||
// cause ErrNoTag
|
||||
//
|
||||
// 6. If the Tag is registered as an enum, or has the "enum" struct tag flag, attempt
|
||||
// to marshal as an Enumeration. int, int8, int16, int32, and their uint counterparts
|
||||
// can be marshaled as an Enumeration. A string can be marshaled to an Enumeration
|
||||
// if the string contains a number, a 4 byte (8 char) hex string with the prefix "0x",
|
||||
// or the normalized name of an enum value registered to this tag. Examples:
|
||||
// to marshal as an Enumeration. int, int8, int16, int32, and their uint counterparts
|
||||
// can be marshaled as an Enumeration. A string can be marshaled to an Enumeration
|
||||
// if the string contains a number, a 4 byte (8 char) hex string with the prefix "0x",
|
||||
// or the normalized name of an enum value registered to this tag. Examples:
|
||||
//
|
||||
// type Foo struct {
|
||||
// CancellationResult string // will encode as an Enumeration because
|
||||
// // the tag CancellationResult is registered
|
||||
// // as an enum.
|
||||
// C int `ttlv:"Comment,enum" // The tag Comment is not registered as an enum
|
||||
// // but the enum flag will force this to encode
|
||||
// // as an enumeration.
|
||||
// }
|
||||
// type Foo struct {
|
||||
// CancellationResult string // will encode as an Enumeration because
|
||||
// // the tag CancellationResult is registered
|
||||
// // as an enum.
|
||||
// C int `ttlv:"Comment,enum" // The tag Comment is not registered as an enum
|
||||
// // but the enum flag will force this to encode
|
||||
// // as an enumeration.
|
||||
// }
|
||||
//
|
||||
// If the string can't be interpreted as an enum value, it will be encoded as a TextString. If
|
||||
// the "enum" struct flag is set, the value *must* successfully encode to an Enumeration using
|
||||
// above rules, or an error is returned.
|
||||
//
|
||||
// If the string can't be interpreted as an enum value, it will be encoded as a TextString. If
|
||||
// the "enum" struct flag is set, the value *must* successfully encode to an Enumeration using
|
||||
// above rules, or an error is returned.
|
||||
// 7. If the Tag is registered as a bitmask, or has the "bitmask" struct tag flag, attempt
|
||||
// to marshal to an Integer, following the same rules as for Enumerations. The ParseInt()
|
||||
// function is used to parse string values.
|
||||
// 9. time.Time marshals to DateTime. If the field has the "datetimeextended" struct flag,
|
||||
// marshal as DateTimeExtended. Example:
|
||||
// to marshal to an Integer, following the same rules as for Enumerations. The ParseInt()
|
||||
// function is used to parse string values.
|
||||
//
|
||||
// type Foo struct {
|
||||
// ActivationDate time.Time `ttlv:",datetimeextended"`
|
||||
// }
|
||||
// 9. time.Time marshals to DateTime. If the field has the "datetimeextended" struct flag,
|
||||
// marshal as DateTimeExtended. Example:
|
||||
//
|
||||
// type Foo struct {
|
||||
// ActivationDate time.Time `ttlv:",datetimeextended"`
|
||||
// }
|
||||
//
|
||||
// 10. big.Int marshals to BigInteger
|
||||
//
|
||||
// 11. time.Duration marshals to Interval
|
||||
//
|
||||
// 12. string marshals to TextString
|
||||
//
|
||||
// 13. []byte marshals to ByteString
|
||||
//
|
||||
// 14. all int and uint variants except int64 and uint64 marshal to Integer. If the golang
|
||||
// value overflows the KMIP value, *MarshalerError with cause ErrIntOverflow is returned
|
||||
// value overflows the KMIP value, *MarshalerError with cause ErrIntOverflow is returned
|
||||
//
|
||||
// 15. int64 and uint64 marshal to LongInteger
|
||||
//
|
||||
// 16. bool marshals to Boolean
|
||||
//
|
||||
// 17. structs marshal to Structure. Each field of the struct will be marshaled into the
|
||||
// values of the Structure according to the above rules.
|
||||
// values of the Structure according to the above rules.
|
||||
//
|
||||
// Any other golang type will return *MarshalerError with cause ErrUnsupportedTypeError.
|
||||
func Marshal(v interface{}) (TTLV, error) {
|
||||
|
7
vendor/github.com/gemalto/kmip-go/ttlv/formatting.go
generated
vendored
7
vendor/github.com/gemalto/kmip-go/ttlv/formatting.go
generated
vendored
@ -143,9 +143,9 @@ func FormatInt(i int32, enumMap EnumMap) string {
|
||||
// See FormatEnum for examples of the formats which can be parsed.
|
||||
// It will also parse numeric strings. Examples:
|
||||
//
|
||||
// ParseEnum("UnableToCancel", registry.EnumForTag(TagCancellationResult))
|
||||
// ParseEnum("0x00000002")
|
||||
// ParseEnum("2")
|
||||
// ParseEnum("UnableToCancel", registry.EnumForTag(TagCancellationResult))
|
||||
// ParseEnum("0x00000002")
|
||||
// ParseEnum("2")
|
||||
//
|
||||
// Returns ErrInvalidHexString if the string is invalid hex, or
|
||||
// if the hex value is less than 1 byte or more than 4 bytes (ignoring
|
||||
@ -289,7 +289,6 @@ func ParseType(s string, enumMap EnumMap) (Type, error) {
|
||||
// be the name from the spec. Names should be in the normalized format
|
||||
// described in the KMIP spec (see NormalizeName()).
|
||||
//
|
||||
//
|
||||
// Value enumerations are used for encoding and decoding KMIP Enumeration values,
|
||||
// KMIP Integer bitmask values, Types, and Tags.
|
||||
type EnumMap interface {
|
||||
|
2
vendor/github.com/gemalto/kmip-go/ttlv/registry.go
generated
vendored
2
vendor/github.com/gemalto/kmip-go/ttlv/registry.go
generated
vendored
@ -15,7 +15,7 @@ import (
|
||||
// program.
|
||||
var DefaultRegistry Registry
|
||||
|
||||
// nolint:gochecknoinits
|
||||
//nolint:gochecknoinits
|
||||
func init() {
|
||||
RegisterTypes(&DefaultRegistry)
|
||||
}
|
||||
|
13
vendor/github.com/gemalto/kmip-go/ttlv/types.go
generated
vendored
13
vendor/github.com/gemalto/kmip-go/ttlv/types.go
generated
vendored
@ -94,12 +94,13 @@ func (t DateTimeExtended) MarshalTTLV(e *Encoder, tag Tag) error {
|
||||
// bytes and native go types. It's useful in tests, or where you want to construct
|
||||
// an arbitrary TTLV structure in code without declaring a bespoke type, e.g.:
|
||||
//
|
||||
// v := ttlv.Value{Tag: TagBatchCount, Value: Values{
|
||||
// Value{Tag: TagComment, Value: "red"},
|
||||
// Value{Tag: TagComment, Value: "blue"},
|
||||
// Value{Tag: TagComment, Value: "green"},
|
||||
// }
|
||||
// t, err := ttlv.Marshal(v)
|
||||
// v := ttlv.Value{
|
||||
// Tag: TagBatchCount, Value: Values{
|
||||
// Value{Tag: TagComment, Value: "red"},
|
||||
// Value{Tag: TagComment, Value: "blue"},
|
||||
// Value{Tag: TagComment, Value: "green"},
|
||||
// }
|
||||
// t, err := ttlv.Marshal(v)
|
||||
//
|
||||
// KMIP Structure types are mapped to the Values go type. When marshaling, if the Value
|
||||
// field is set to a Values{}, the resulting TTLV will be TypeStructure. When unmarshaling
|
||||
|
Reference in New Issue
Block a user