SQL Server
SQL Server
Change Password for Java KeyStore File
See more Java KeyStore (JKS) Examples
Demonstrates how to load a Java keystore, change the password, and save using the new password. If the Java keystore contains only trusted root certificates, then it's simply a matter of loading the JKS with the existing password, and then saving with a new password. If the JKS contains private key entries, then each private key entry must be re-keyed using the new password by calling the ChangePassword method.Chilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @jks int
EXEC @hr = sp_OACreate 'Chilkat.JavaKeyStore', @jks OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @oldJksPassword nvarchar(4000)
SELECT @oldJksPassword = 'existingPassword'
DECLARE @newJksPassword nvarchar(4000)
SELECT @newJksPassword = 'newPassword'
DECLARE @jksPath nvarchar(4000)
SELECT @jksPath = '/someDir/keyStore.jks'
-- Load the Java keystore from a file.
EXEC sp_OAMethod @jks, 'LoadFile', @success OUT, @oldJksPassword, @jksPath
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @jks, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @jks
RETURN
END
-- If the JKS contains private key entries, then each
-- must be re-keyed with the new password by calling ChangePassword.
DECLARE @numPrivateKeys int
EXEC sp_OAGetProperty @jks, 'NumPrivateKeys', @numPrivateKeys OUT
DECLARE @i int
SELECT @i = 0
WHILE @i < @numPrivateKeys
BEGIN
EXEC sp_OAMethod @jks, 'ChangePassword', @success OUT, @i, @oldJksPassword, @newJksPassword
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @jks, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @jks
RETURN
END
SELECT @i = @i + 1
END
-- Write the JKS using the new password for the JKS file's keyed digest.
EXEC sp_OAMethod @jks, 'ToFile', @success OUT, @newJksPassword, @jksPath
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @jks, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @jks
RETURN
END
PRINT 'Updated the password for the Java keystore file.'
EXEC @hr = sp_OADestroy @jks
END
GO