Class Sha256PasswordPlugin
- java.lang.Object
-
- org.mariadb.jdbc.internal.com.send.authentication.Sha256PasswordPlugin
-
- All Implemented Interfaces:
AuthenticationPlugin
public class Sha256PasswordPlugin extends Object implements AuthenticationPlugin
-
-
Constructor Summary
Constructors Constructor Description Sha256PasswordPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static byte[]
encrypt(PublicKey publicKey, String password, byte[] seed, String passwordCharacterEncoding)
Encode password with seed and public key.static PublicKey
generatePublicKey(byte[] publicKeyBytes)
Read public pem key from String.void
initialize(String authenticationData, byte[] seed, Options options)
Initialization.String
name()
Authentication plugin name.Buffer
process(PacketOutputStream out, PacketInputStream in, AtomicInteger sequence)
Process SHA 256 password plugin authentication.static PublicKey
readPublicKeyFromFile(String serverRsaPublicKeyFile)
Read public Key from file.static PublicKey
readPublicKeyFromSocket(PacketInputStream reader, AtomicInteger sequence)
Read public Key from socket.String
type()
Authentication plugin type.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.mariadb.jdbc.authentication.AuthenticationPlugin
mustUseSsl
-
-
-
-
Method Detail
-
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 cannot read file or file content is not a public key.
-
readPublicKeyFromSocket
public static PublicKey readPublicKeyFromSocket(PacketInputStream reader, AtomicInteger sequence) throws SQLException, IOException
Read public Key from socket.- Parameters:
reader
- input stream readersequence
- current exchange sequence- Returns:
- public key
- Throws:
SQLException
- if server return an Error packet or public key cannot be parsed.IOException
- if error reading socket
-
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, String passwordCharacterEncoding) throws SQLException, UnsupportedEncodingException
Encode password with seed and public key.- Parameters:
publicKey
- public keypassword
- passwordseed
- seedpasswordCharacterEncoding
- password encoding- Returns:
- encoded password
- Throws:
SQLException
- if cannot encode passwordUnsupportedEncodingException
- if password encoding is unknown
-
name
public String name()
Description copied from interface:AuthenticationPlugin
Authentication plugin name.- Specified by:
name
in interfaceAuthenticationPlugin
- Returns:
- authentication plugin name. ex: Mysql native password
-
type
public String type()
Description copied from interface:AuthenticationPlugin
Authentication plugin type.- Specified by:
type
in interfaceAuthenticationPlugin
- Returns:
- authentication plugin type. ex: mysql_native_password
-
initialize
public void initialize(String authenticationData, byte[] seed, Options options)
Initialization.- Specified by:
initialize
in interfaceAuthenticationPlugin
- Parameters:
authenticationData
- authentication data (password/token)seed
- server provided seedoptions
- Connection string options
-
process
public Buffer process(PacketOutputStream out, PacketInputStream in, AtomicInteger sequence) throws IOException, SQLException
Process SHA 256 password plugin authentication. see https://mariadb.com/kb/en/library/authentication-plugin-ed25519/- Specified by:
process
in interfaceAuthenticationPlugin
- Parameters:
out
- out streamin
- in streamsequence
- packet sequence- Returns:
- response packet
- Throws:
IOException
- if socket errorSQLException
- if plugin exception
-
-