SQL Server
SQL Server
Get Text Certificate Extensions by OID
See more Certificates Examples
Demonstrates how to get text certificate extensions by OID. In this example, we have a certificate with the following OID extensions: 1.3.6.1.4.1.49952.5.8.5, 1.3.6.1.4.1.49952.5.8.6, 1.3.6.1.4.1.49952.5.8.7.Most certificate extensions have values that are ASN.1 (binary). For the majority of cases, an application should call GetExtensionAsXml. For extensions known to have text values (such as the OIDs listed above), an application can instead call GetExtensionAsText.
The GetExtensionAsText method is added in Chilkat v9.5.0.89.
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
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
DECLARE @cert int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @cert, 'LoadFromFile', @success OUT, 'qa_data/certs/PUH9.cer'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @cert, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @cert
RETURN
END
DECLARE @oid nvarchar(4000)
SELECT @oid = '1.3.6.1.4.1.49952.5.8.5'
DECLARE @str nvarchar(4000)
EXEC sp_OAMethod @cert, 'GetExtensionAsText', @str OUT, @oid
EXEC sp_OAGetProperty @cert, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 1
BEGIN
PRINT @oid + ': ' + @str
END
SELECT @oid = '1.3.6.1.4.1.49952.5.8.6'
EXEC sp_OAMethod @cert, 'GetExtensionAsText', @str OUT, @oid
EXEC sp_OAGetProperty @cert, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 1
BEGIN
PRINT @oid + ': ' + @str
END
SELECT @oid = '1.3.6.1.4.1.49952.5.8.7'
EXEC sp_OAMethod @cert, 'GetExtensionAsText', @str OUT, @oid
EXEC sp_OAGetProperty @cert, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 1
BEGIN
PRINT @oid + ': ' + @str
END
EXEC @hr = sp_OADestroy @cert
END
GO