Class CachingSha2PasswordPlugin
- java.lang.Object
-
- org.mariadb.jdbc.plugin.authentication.standard.CachingSha2PasswordPlugin
-
- All Implemented Interfaces:
AuthenticationPlugin
public class CachingSha2PasswordPlugin extends Object implements AuthenticationPlugin
Mysql caching sha2 password plugin
-
-
Constructor Summary
Constructors Constructor Description CachingSha2PasswordPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static byte[]encrypt(PublicKey publicKey, String password, byte[] seed)Encode password with seed and public key.static PublicKeygeneratePublicKey(byte[] publicKeyBytes)Read public pem key from String.voidinitialize(String authenticationData, byte[] seed, Configuration conf)Initialized data.org.mariadb.jdbc.client.ReadableByteBufprocess(Writer out, Reader in, org.mariadb.jdbc.client.Context context)Process native password plugin authentication.static PublicKeyreadPublicKeyFromFile(String serverRsaPublicKeyFile)Read public Key from file.static byte[]sha256encryptPassword(CharSequence password, byte[] seed)Send an SHA-2 encrypted password.Stringtype()Authentication plugin type.
-
-
-
Field Detail
-
TYPE
public static final String TYPE
plugin name- See Also:
- Constant Field Values
-
-
Method Detail
-
sha256encryptPassword
public static byte[] sha256encryptPassword(CharSequence password, byte[] seed)
Send an SHA-2 encrypted password. encryption XOR(SHA256(password), SHA256(seed, SHA256(SHA256(password))))- Parameters:
password- passwordseed- seed- Returns:
- encrypted pwd
-
readPublicKeyFromFile
public static PublicKey readPublicKeyFromFile(String serverRsaPublicKeyFile) throws SQLException
Read public Key from file.- Parameters:
serverRsaPublicKeyFile- RSA public key file- Returns:
- public key
- Throws:
SQLException- if having an error reading file or file content is not a public key.
-
generatePublicKey
public static PublicKey generatePublicKey(byte[] publicKeyBytes) throws SQLException
Read public pem key from String.- Parameters:
publicKeyBytes- public key bytes value- Returns:
- public key
- Throws:
SQLException- if key cannot be parsed
-
encrypt
public static byte[] encrypt(PublicKey publicKey, String password, byte[] seed) throws SQLException
Encode password with seed and public key.- Parameters:
publicKey- public keypassword- passwordseed- seed- Returns:
- encoded password
- Throws:
SQLException- if cannot encode password
-
type
public String type()
Description copied from interface:AuthenticationPluginAuthentication plugin type.- Specified by:
typein interfaceAuthenticationPlugin- Returns:
- authentication plugin type. ex: mysql_native_password
-
initialize
public void initialize(String authenticationData, byte[] seed, Configuration conf)
Initialized data.- Specified by:
initializein interfaceAuthenticationPlugin- Parameters:
authenticationData- authentication data (password/token)seed- server provided seedconf- Connection string options
-
process
public org.mariadb.jdbc.client.ReadableByteBuf process(Writer out, Reader in, org.mariadb.jdbc.client.Context context) throws IOException, SQLException
Process native password plugin authentication. see https://mariadb.com/kb/en/library/authentication-plugin-mysql_native_password/- Specified by:
processin interfaceAuthenticationPlugin- Parameters:
out- out streamin- in streamcontext- connection context- Returns:
- response packet
- Throws:
IOException- if socket errorSQLException- if plugin exception
-
-