Class Attribute

java.lang.Object
org.bouncycastle.asn1.ASN1Object
org.bouncycastle.asn1.cms.Attribute
All Implemented Interfaces:
ASN1Encodable, Encodable
Direct Known Subclasses:
SMIMECapabilitiesAttribute, SMIMEEncryptionKeyPreferenceAttribute

public class Attribute extends ASN1Object
RFC 5652: Attribute is a pair of OID (as type identifier) + set of values.

 Attribute ::= SEQUENCE {
     attrType OBJECT IDENTIFIER,
     attrValues SET OF AttributeValue
 }
 
 AttributeValue ::= ANY
 

General rule on values is that same AttributeValue must not be included multiple times into the set. That is, if the value is a SET OF INTEGERs, then having same value repeated is wrong: (1, 1), but different values is OK: (1, 2). Normally the AttributeValue syntaxes are more complicated than that.

General rule of Attribute usage is that the Attributes containers must not have multiple Attribute:s with same attrType (OID) there.