16e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompackage org.bouncycastle.asn1.x500;
26e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
36e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1Encodable;
46e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier;
56e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
66e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom/**
76e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * It turns out that the number of standard ways the fields in a DN should be
86e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * encoded into their ASN.1 counterparts is rapidly approaching the
96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * number of machines on the internet. By default the X500Name class
106e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * will produce UTF8Strings in line with the current recommendations (RFC 3280).
116e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom * <p>
126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom */
136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrompublic interface X500NameStyle
146e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom{
156e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    /**
166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * Convert the passed in String value into the appropriate ASN.1
176e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * encoded object.
186e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     *
196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * @param oid the oid associated with the value in the DN.
206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * @param value the value of the particular DN component.
216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     * @return the ASN.1 equivalent for the value.
226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom     */
236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    ASN1Encodable stringToValue(ASN1ObjectIdentifier oid, String value);
246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    ASN1ObjectIdentifier attrNameToOID(String attrName);
266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
276e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    boolean areEqual(X500Name name1, X500Name name2);
286e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
296e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    RDN[] fromString(String dirName);
306e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    int calculateHashCode(X500Name name);
326e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom
336e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom    String toString(X500Name name);
346e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom}
35