jdk/src/share/classes/sun/security/krb5/EncryptionKey.java
changeset 5802 ea99d72d3c19
parent 5774 4b9857e483c1
child 7183 d8ccc1c73358
equal deleted inserted replaced
5801:8008ed6e4a37 5802:ea99d72d3c19
    74     private byte[] keyValue;
    74     private byte[] keyValue;
    75     private Integer kvno; // not part of ASN1 encoding;
    75     private Integer kvno; // not part of ASN1 encoding;
    76 
    76 
    77     private static final boolean DEBUG = Krb5.DEBUG;
    77     private static final boolean DEBUG = Krb5.DEBUG;
    78 
    78 
    79     public static int[] getETypes(EncryptionKey[] keys) {
       
    80         int len = keys.length;
       
    81         int[] result = new int[len];
       
    82         int count = 0;  // Number of elements in result. Might be less than
       
    83                         // len if there are keys having the same etype
       
    84         loopi: for (int i=0; i<len; i++) {
       
    85             int eType = keys[i].getEType();
       
    86             for (int j=0; j<count; j++) {
       
    87                 if (result[j] == eType) {
       
    88                     continue loopi;
       
    89                 }
       
    90             }
       
    91             result[count++] = eType;
       
    92         }
       
    93         if (count != len) {
       
    94             result = Arrays.copyOf(result, count);
       
    95         }
       
    96         return result;
       
    97     }
       
    98 
       
    99     public synchronized int getEType() {
    79     public synchronized int getEType() {
   100         return keyType;
    80         return keyType;
   101     }
    81     }
   102 
    82 
   103     public final Integer getKeyVersionNumber() {
    83     public final Integer getKeyVersionNumber() {
   206         int[] etypes = EType.getDefaults("default_tkt_enctypes");
   186         int[] etypes = EType.getDefaults("default_tkt_enctypes");
   207         if (etypes == null) {
   187         if (etypes == null) {
   208             etypes = EType.getBuiltInDefaults();
   188             etypes = EType.getBuiltInDefaults();
   209         }
   189         }
   210 
   190 
   211         // set the preferred etype for preauth
       
   212         if ((pa_exists) && (pa_etype != EncryptedData.ETYPE_NULL)) {
       
   213             if (DEBUG) {
       
   214                 System.out.println("Pre-Authentication: " +
       
   215                         "Set preferred etype = " + pa_etype);
       
   216             }
       
   217             if (EType.isSupported(pa_etype)) {
       
   218                 // reset etypes to preferred value
       
   219                 etypes = new int[1];
       
   220                 etypes[0] = pa_etype;
       
   221             }
       
   222         }
       
   223 
       
   224         EncryptionKey[] encKeys = new EncryptionKey[etypes.length];
   191         EncryptionKey[] encKeys = new EncryptionKey[etypes.length];
   225         for (int i = 0; i < etypes.length; i++) {
   192         for (int i = 0; i < etypes.length; i++) {
   226             if (EType.isSupported(etypes[i])) {
   193             if (EType.isSupported(etypes[i])) {
       
   194                 byte[] s2kparams = (pa_exists && etypes[i] == pa_etype)
       
   195                         ? pa_s2kparams : null;
   227                 encKeys[i] = new EncryptionKey(
   196                 encKeys[i] = new EncryptionKey(
   228                         stringToKey(password, salt, pa_s2kparams, etypes[i]),
   197                         stringToKey(password, salt, s2kparams, etypes[i]),
   229                         etypes[i], null);
   198                         etypes[i], null);
   230             } else {
   199             } else {
   231                 if (DEBUG) {
   200                 if (DEBUG) {
   232                     System.out.println("Encryption Type " +
   201                     System.out.println("Encryption Type " +
   233                         EType.toString(etypes[i]) +
   202                         EType.toString(etypes[i]) +