USP_IMPORTENCRYPTIONKEY_SET

Creates or updates keys for the given bit strength.

Parameters

Parameter Parameter Type Mode Description
@PUBLICKEY varbinary IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_IMPORTENCRYPTIONKEY_SET
            (
                @PUBLICKEY varbinary(32),
                @CHANGEAGENTID uniqueidentifier = null
            )
            as
                set nocount on

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output        

                exec dbo.USP_GET_KEY_ACCESS

                begin try
                    if not exists (select * from dbo.IMPORTENCRYPTIONKEY)
                    begin
                        insert into dbo.IMPORTENCRYPTIONKEY
                        (
                            PUBLICKEY,
                            ADDEDBYID,
                            CHANGEDBYID,
                            DATEADDED,
                            DATECHANGED                                
                        )
                        values
                        (
                            EncryptByKey(key_GUID('sym_BBInfinity'), @PUBLICKEY),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        )
                    end
                    else
                    begin
                        update dbo.IMPORTENCRYPTIONKEY set
                            PUBLICKEY = EncryptByKey(key_GUID('sym_BBInfinity'), @PUBLICKEY),
                            DATECHANGED = @CURRENTDATE,
                            CHANGEDBYID = @CHANGEAGENTID
                    end

                    close symmetric key sym_BBInfinity
                end try
                begin catch
                    close symmetric key sym_BBInfinity
                    return 1;
                end catch

                return 0