USP_ENCRYPTEDFILE_ADD

Adds information about an encrypted file.

Parameters

Parameter Parameter Type Mode Description
@FILEPATH nvarchar(260) IN
@AESINITIALIZATIONVECTOR varbinary IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_ENCRYPTEDFILE_ADD
            (
                @FILEPATH nvarchar(260),
                @AESINITIALIZATIONVECTOR varbinary(16),
                @CHANGEAGENTID uniqueidentifier = null
            )
            as
                set nocount on

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()

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

                set @FILEPATH = rtrim(ltrim(lower(@FILEPATH)))

                exec dbo.USP_GET_KEY_ACCESS

                begin try
                    if not exists (select * from dbo.ENCRYPTEDFILE where rtrim(ltrim(lower(FILEPATH))) = @FILEPATH)
                    begin
                        insert into dbo.ENCRYPTEDFILE
                        (
                            FILEPATH,
                            AESINITIALIZATIONVECTOR,
                            ADDEDBYID,
                            CHANGEDBYID,
                            DATEADDED,
                            DATECHANGED                                
                        )
                        values
                        (
                            @FILEPATH,
                            EncryptByKey(key_GUID('sym_BBInfinity'), @AESINITIALIZATIONVECTOR),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        )
                    end
                    else
                    begin
                        update dbo.ENCRYPTEDFILE set
                            AESINITIALIZATIONVECTOR = EncryptByKey(key_GUID('sym_BBInfinity'), @AESINITIALIZATIONVECTOR),
                            DATECHANGED = @CURRENTDATE,
                            CHANGEDBYID = @CHANGEAGENTID
                        where FILEPATH= @FILEPATH
                    end

                    close symmetric key sym_BBInfinity
                end try
                begin catch
                    close symmetric key sym_BBInfinity
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch

                return 0