jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java
changeset 15008 6a494f8ba5b5
parent 14405 e7fff80005c1
child 15010 ec6b49ce42b1
equal deleted inserted replaced
15002:8ab8c2b2eee6 15008:6a494f8ba5b5
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    55  * - RC2
    55  * - RC2
    56  *
    56  *
    57  * - ARCFOUR (RC4 compatible)
    57  * - ARCFOUR (RC4 compatible)
    58  *
    58  *
    59  * - Cipher modes ECB, CBC, CFB, OFB, PCBC, CTR, and CTS for all block ciphers
    59  * - Cipher modes ECB, CBC, CFB, OFB, PCBC, CTR, and CTS for all block ciphers
       
    60  *   and mode GCM for AES cipher
    60  *
    61  *
    61  * - Cipher padding ISO10126Padding for non-PKCS#5 block ciphers and
    62  * - Cipher padding ISO10126Padding for non-PKCS#5 block ciphers and
    62  *   NoPadding and PKCS5Padding for all block ciphers
    63  *   NoPadding and PKCS5Padding for all block ciphers
    63  *
    64  *
    64  * - Password-based Encryption (PBE)
    65  * - Password-based Encryption (PBE)
    98 
    99 
    99         final String BLOCK_MODES = "ECB|CBC|PCBC|CTR|CTS|CFB|OFB" +
   100         final String BLOCK_MODES = "ECB|CBC|PCBC|CTR|CTS|CFB|OFB" +
   100             "|CFB8|CFB16|CFB24|CFB32|CFB40|CFB48|CFB56|CFB64" +
   101             "|CFB8|CFB16|CFB24|CFB32|CFB40|CFB48|CFB56|CFB64" +
   101             "|OFB8|OFB16|OFB24|OFB32|OFB40|OFB48|OFB56|OFB64";
   102             "|OFB8|OFB16|OFB24|OFB32|OFB40|OFB48|OFB56|OFB64";
   102         final String BLOCK_MODES128 = BLOCK_MODES +
   103         final String BLOCK_MODES128 = BLOCK_MODES +
   103             "|CFB72|CFB80|CFB88|CFB96|CFB104|CFB112|CFB120|CFB128" +
   104             "|GCM|CFB72|CFB80|CFB88|CFB96|CFB104|CFB112|CFB120|CFB128" +
   104             "|OFB72|OFB80|OFB88|OFB96|OFB104|OFB112|OFB120|OFB128";
   105             "|OFB72|OFB80|OFB88|OFB96|OFB104|OFB112|OFB120|OFB128";
   105         final String BLOCK_PADS = "NOPADDING|PKCS5PADDING|ISO10126PADDING";
   106         final String BLOCK_PADS = "NOPADDING|PKCS5PADDING|ISO10126PADDING";
   106 
   107 
   107         AccessController.doPrivileged(
   108         AccessController.doPrivileged(
   108             new java.security.PrivilegedAction<Object>() {
   109             new java.security.PrivilegedAction<Object>() {
   256                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.3", "AES_128/OFB/NoPadding");
   257                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.3", "AES_128/OFB/NoPadding");
   257                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.3", "AES_128/OFB/NoPadding");
   258                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.3", "AES_128/OFB/NoPadding");
   258                     put("Cipher.AES_128/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES128_CFB_NoPadding");
   259                     put("Cipher.AES_128/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES128_CFB_NoPadding");
   259                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.4", "AES_128/CFB/NoPadding");
   260                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.4", "AES_128/CFB/NoPadding");
   260                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.4", "AES_128/CFB/NoPadding");
   261                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.4", "AES_128/CFB/NoPadding");
       
   262                     put("Cipher.AES_128/GCM/NoPadding", "com.sun.crypto.provider.AESCipher$AES128_GCM_NoPadding");
       
   263                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.6", "AES_128/GCM/NoPadding");
       
   264                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.6", "AES_128/GCM/NoPadding");
   261 
   265 
   262                     put("Cipher.AES_192/ECB/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_ECB_NoPadding");
   266                     put("Cipher.AES_192/ECB/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_ECB_NoPadding");
   263                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.21", "AES_192/ECB/NoPadding");
   267                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.21", "AES_192/ECB/NoPadding");
   264                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.21", "AES_192/ECB/NoPadding");
   268                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.21", "AES_192/ECB/NoPadding");
   265                     put("Cipher.AES_192/CBC/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_CBC_NoPadding");
   269                     put("Cipher.AES_192/CBC/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_CBC_NoPadding");
   269                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.23", "AES_192/OFB/NoPadding");
   273                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.23", "AES_192/OFB/NoPadding");
   270                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.23", "AES_192/OFB/NoPadding");
   274                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.23", "AES_192/OFB/NoPadding");
   271                     put("Cipher.AES_192/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_CFB_NoPadding");
   275                     put("Cipher.AES_192/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_CFB_NoPadding");
   272                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.24", "AES_192/CFB/NoPadding");
   276                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.24", "AES_192/CFB/NoPadding");
   273                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.24", "AES_192/CFB/NoPadding");
   277                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.24", "AES_192/CFB/NoPadding");
   274 
   278                     put("Cipher.AES_192/GCM/NoPadding", "com.sun.crypto.provider.AESCipher$AES192_GCM_NoPadding");
       
   279                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.26", "AES_192/GCM/NoPadding");
       
   280                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.26", "AES_192/GCM/NoPadding");
   275 
   281 
   276                     put("Cipher.AES_256/ECB/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_ECB_NoPadding");
   282                     put("Cipher.AES_256/ECB/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_ECB_NoPadding");
   277                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.41", "AES_256/ECB/NoPadding");
   283                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.41", "AES_256/ECB/NoPadding");
   278                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.41", "AES_256/ECB/NoPadding");
   284                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.41", "AES_256/ECB/NoPadding");
   279                     put("Cipher.AES_256/CBC/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_CBC_NoPadding");
   285                     put("Cipher.AES_256/CBC/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_CBC_NoPadding");
   283                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.43", "AES_256/OFB/NoPadding");
   289                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.43", "AES_256/OFB/NoPadding");
   284                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.43", "AES_256/OFB/NoPadding");
   290                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.43", "AES_256/OFB/NoPadding");
   285                     put("Cipher.AES_256/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_CFB_NoPadding");
   291                     put("Cipher.AES_256/CFB/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_CFB_NoPadding");
   286                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.44", "AES_256/CFB/NoPadding");
   292                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.44", "AES_256/CFB/NoPadding");
   287                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.44", "AES_256/CFB/NoPadding");
   293                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.44", "AES_256/CFB/NoPadding");
       
   294                     put("Cipher.AES_256/GCM/NoPadding", "com.sun.crypto.provider.AESCipher$AES256_GCM_NoPadding");
       
   295                     put("Alg.Alias.Cipher.2.16.840.1.101.3.4.1.46", "AES_256/GCM/NoPadding");
       
   296                     put("Alg.Alias.Cipher.OID.2.16.840.1.101.3.4.1.46", "AES_256/GCM/NoPadding");
   288 
   297 
   289                     put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher$General");
   298                     put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher$General");
   290                     put("Cipher.AESWrap SupportedModes", "ECB");
   299                     put("Cipher.AESWrap SupportedModes", "ECB");
   291                     put("Cipher.AESWrap SupportedPaddings", "NOPADDING");
   300                     put("Cipher.AESWrap SupportedPaddings", "NOPADDING");
   292                     put("Cipher.AESWrap SupportedKeyFormats", "RAW");
   301                     put("Cipher.AESWrap SupportedKeyFormats", "RAW");
   507                         "com.sun.crypto.provider.BlowfishParameters");
   516                         "com.sun.crypto.provider.BlowfishParameters");
   508 
   517 
   509                     put("AlgorithmParameters.AES",
   518                     put("AlgorithmParameters.AES",
   510                         "com.sun.crypto.provider.AESParameters");
   519                         "com.sun.crypto.provider.AESParameters");
   511                     put("Alg.Alias.AlgorithmParameters.Rijndael", "AES");
   520                     put("Alg.Alias.AlgorithmParameters.Rijndael", "AES");
       
   521                     put("AlgorithmParameters.GCM",
       
   522                         "com.sun.crypto.provider.GCMParameters");
   512 
   523 
   513 
   524 
   514                     put("AlgorithmParameters.RC2",
   525                     put("AlgorithmParameters.RC2",
   515                         "com.sun.crypto.provider.RC2Parameters");
   526                         "com.sun.crypto.provider.RC2Parameters");
   516 
   527