USP_CLIENTUSERSCIPHERHISTORY_LOOKUP

Parameters

Parameter Parameter Type Mode Description
@CLIENTUSERSID int IN
@PASSWORD nvarchar(255) IN

Definition

Copy


      CREATE procedure dbo.USP_CLIENTUSERSCIPHERHISTORY_LOOKUP
      (
          @CLIENTUSERSID int,
          @PASSWORD nvarchar(255)
      )
      as begin


        --Migrating password history cipher for new salted password

          exec dbo.USP_GET_KEY_ACCESS;
          declare @CHANGEAGENTID? uniqueidentifier;
??          exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
          update CUCH set CUCH.CIPHER = dbo.[UFN_HASHBYTES_GET](coalesce(convert(varchar(255),DECRYPTBYKEY(CUCH.CIPHER)), '')) ,
                                          CUCH.CHANGEDBYID = @CHANGEAGENTID,???????????????????????                                    
???????????????????????                      CUCH.datechanged=GETDATE()
          from dbo.CLIENTUSERSCIPHERHISTORY CUCH where CUCH.CLIENTUSERSID =@CLIENTUSERSID and CUCH.CIPHER not like '$2a$%' ;

            exec dbo.USP_CLOSE_KEY_ACCESS; 


        declare @ID int;
        declare @ISALEARDYUSED bit = 0;    
        declare @CIPHER nvarchar(255);
        declare @SALTCIPHERTABLE table(ID int Identity(1,1), CIPHER nvarchar(255))
        insert into @SALTCIPHERTABLE ( CIPHER)
        select  CIPHER from dbo.[CLIENTUSERSCIPHERHISTORY] where CLIENTUSERSID = @CLIENTUSERSID
        while exists(select * from @SALTCIPHERTABLE
        begin      
            select top 1 @ID = ID from @SALTCIPHERTABLE
            select @CIPHER = CIPHER from @SALTCIPHERTABLE where ID = @ID
            exec @ISALEARDYUSED  = UFN_CIPHER_MATCH  @PASSWORD , @CIPHER
            if @ISALEARDYUSED=1
                break;
            delete from @SALTCIPHERTABLE Where ID = @ID
            set @CIPHER = null
          end
        if(@ISALEARDYUSED = 1)
          select 1
        else
          select 0;
      end