Function

setPINValue

Module

XuDsigS

Last Modified

7/15/2014 3:26:44 PM

Scope

Interfaced

Declaration

function setPINValue(PinValue: String; handle: Dword): Boolean;

Calls Hierarchy


setPINValue
 ├CryptAcquireContext
 ├CryptSetProvParam
 └CryptReleaseContext

Called-By Hierarchy


                                                           setPINValue
                                              tCryptography.SignData┤ 
                                                       checkPINValue┘ 
                                                    getSANFromCard┤   
                                                          SetSAN┘ │   
                           TfrmFrame.DigitalSigningSetup1Click┤   │   
                                             ExecuteSignOrders┤   │   
                                  TfrmOrders.mnuActSignClick┘ │   │   
                                         TfrmReview.cmdOKClick┘   │   
                                               ReviewChanges┘     │   
                           TfrmFrame.AllowContextChangeAll┤       │   
                                TfrmFrame.FormCloseQuery┤ │       │   
                              TfrmFrame.mnuFileNextClick┤ │       │   
                            TfrmFrame.mnuFileOpenClick┤ │ │       │   
                                TfrmFrame.UMInitiate┤ │ │ │       │   
                       TfrmFrame.mnuFileNextClick...┤ │ │ │       │   
                       TfrmFrame.mnuFileRefreshClick┤ │ │ │       │   
                       TfrmOrders.CheckOrderStatus┤ │ │ │ │       │   
                   TfrmOrders.mnuActChgEvntClick┤ │ │ │ │ │       │   
                      TfrmOrders.mnuActHoldClick┤ │ │ │ │ │       │   
                    TfrmOrders.mnuActUnholdClick┤ │ │ │ │ │       │   
                     TfrmOrders.mnuActRenewClick┤ │ │ │ │ │       │   
                    TfrmOrders.mnuActChangeClick┤ │ │ │ │ │       │   
                      TfrmOrders.mnuActCopyClick┘ │ │ │ │ │       │   
                            TfrmMeds.mnuActDCClick┤ │ │ │ │       │   
                           TfrmMeds.CheckMedStatus┘ │ │ │ │       │   
                        TfrmMeds.mnuActHoldClick┤   │ │ │ │       │   
                       TfrmMeds.mnuActRenewClick┤   │ │ │ │       │   
                      TfrmMeds.mnuActUnholdClick┤   │ │ │ │       │   
                      TfrmMeds.mnuActChangeClick┤   │ │ │ │       │   
                        TfrmMeds.mnuActCopyClick┤   │ │ │ │       │   
                      TfrmMeds.mnuActRefillClick┘   │ │ │ │       │   
                                  TfrmFrame.ViewInfo┘ │ │ │       │   
                               TfrmDCSumm.ViewInfo┤   │ │ │       │   
                             TfrmConsults.ViewInfo┤   │ │ │       │   
                     TfrmFrame.pnlRemindersMouseUp┤   │ │ │       │   
                      TfrmFrame.RemindersChanged┘ │   │ │ │       │   
                          TfrmFrame.FormCreate┘   │   │ │ │       │   
                            TfrmFrame.pnlCIRNClick┤   │ │ │       │   
                      TfrmFrame.pnlVistaWebClick┤ │   │ │ │       │   
                           TfrmFrame.FormKeyDown┘ │   │ │ │       │   
                         TfrmFrame.pnlPatientClick┤   │ │ │       │   
                           TfrmFrame.pnlVisitClick┤   │ │ │       │   
                     TfrmFrame.pnlPrimaryCareClick┤   │ │ │       │   
                       TfrmFrame.pnlRemindersClick┤   │ │ │       │   
                        TfrmFrame.pnlPostingsClick┤   │ │ │       │   
                            TfrmFrame.pnlFlagClick┤   │ │ │       │   
                              TfrmFrame.laMHVClick┤   │ │ │       │   
                             TfrmFrame.laVAA2Click┤   │ │ │       │   
                               TfrmOrders.ViewInfo┤   │ │ │       │   
                                 TfrmMeds.ViewInfo┤   │ │ │       │   
                              TfrmSurgery.ViewInfo┤   │ │ │       │   
                                TfrmNotes.ViewInfo┤   │ │ │       │   
                             TfrmProblems.ViewInfo┘   │ │ │       │   
                     TfrmFrame.mnuFileNotifRemoveClick┤ │ │       │   
                             TfrmFrame.NextButtonClick┘ │ │       │   
                           TfrmFrame.SetUpNextButton┘   │ │       │   
                     TfrmFrame.mnuFileOpenClick...┤     │ │       │   
                              TfrmFrame.FormResize┘     │ │       │   
                            TfrmFrame.ChangeFont┘       │ │       │   
                    TfrmFrame.LoadSizesForUser┤         │ │       │   
               TfrmFrame.LoadUserPreferences┘ │         │ │       │   
                      TfrmFrame.UMInitiate┘   │         │ │       │   
                    TfrmFrame.mnuFontSizeClick┘         │ │       │   
                           TfrmFrame.mnuFileOpenClick...┤ │       │   
                           TfrmFrame.ctxContextorPending┤ │       │   
                          TfrmFrame.StartCCOWContextor┘ │ │       │   
                                TfrmFrame.FormCreate┘   │ │       │   
                         TfrmFrame.ctxContextorCommitted┤ │       │   
                       TfrmFrame.StartCCOWContextor...┘ │ │       │   
                  TfrmFrame.mnuFileResumeContextGetClick┤ │       │   
                  TfrmFrame.mnuFileResumeContextSetClick┘ │       │   
                                  TfrmFrame.FormCloseQuery┤       │   
                              TfrmFrame.mnuFileReviewClick┤       │   
                                           UpdateEncounter┘       │   
                         TfrmFrame.mnuFileEncounterClick┤         │   
                                 TfrmFrame.ViewInfo...┤ │         │   
                    TfrmODMedIV.SetValuesFromResponses┤ │         │   
                             TfrmODMedIV.SetupDialog┤ │ │         │   
                   TfrmODMedIV.cboSolutionMouseClick┘ │ │         │   
                       TfrmODMedIV.cboSolutionExit┘   │ │         │   
                  TfrmODMedIV.cboSolutionMouseClick...┤ │         │   
                     TfrmODMedIV.cboAdditiveMouseClick┤ │         │   
                         TfrmODMedIV.cboAdditiveExit┘ │ │         │   
                                TfrmODAuto.SetupDialog┤ │         │   
                                   ActivateOrderDialog┤ │         │   
                           TfrmRemDlg.btnFinishClick┤ │ │         │   
           TfrmConsults.mnuActNewConsultRequestClick┤ │ │         │   
                   TfrmConsults.cmdNewConsultClick┘ │ │ │         │   
                TfrmConsults.mnuActNewProcedureClick┤ │ │         │   
                      TfrmConsults.cmdNewProcClick┘ │ │ │         │   
                                        ChangeOrders┤ │ │         │   
                      TfrmOrders.mnuActChangeClick┤ │ │ │         │   
                        TfrmMeds.mnuActChangeClick┘ │ │ │         │   
                                     ChangeOrdersEvt┤ │ │         │   
                                          CopyOrders┤ │ │         │   
                        TfrmOrders.mnuActCopyClick┤ │ │ │         │   
                          TfrmMeds.mnuActCopyClick┤ │ │ │         │   
                           TfrmODActive.btnOKClick┘ │ │ │         │   
                                      TransferOrders┤ │ │         │   
                        TfrmOrders.mnuActCopyClick┤ │ │ │         │   
                          TfrmMeds.mnuActCopyClick┤ │ │ │         │   
                           TfrmODActive.btnOKClick┘ │ │ │         │   
                            TfrmOrders.lstWriteClick┤ │ │         │   
               TfrmOrders.PlaceOrderForDefaultDialog┤ │ │         │   
                  TfrmOrders.DisplayDefaultDlgList┤ │ │ │         │   
                       TfrmOrders.ResetOrderPage┘ │ │ │ │         │   
               TfrmOrders.btnDelayedOrderClick┘   │ │ │ │         │   
                                 DisplayEvntDialog┤ │ │ │         │   
                             SetDelayEventForMed┘ │ │ │ │         │   
                      TfrmMeds.mnuActCopyClick┘   │ │ │ │         │   
                                 DisplayEvntDialog┤ │ │ │         │   
                                  SetViewForCopy┘ │ │ │ │         │   
                    TfrmOrders.mnuActCopyClick┘   │ │ │ │         │   
                                 DisplayEvntDialog┘ │ │ │         │   
                                ExecuteChangeEvt┘   │ │ │         │   
                 TfrmOrders.mnuActChgEvntClick┘     │ │ │         │   
                             TfrmMeds.mnuActNewClick┤ │ │         │   
                           TfrmOMNavA.ActivateDialog┤ │ │         │   
                         TfrmOMNavA.grdMenuKeyDown┤ │ │ │         │   
                         TfrmOMNavA.grdMenuMouseUp┘ │ │ │         │   
                                TfrmOMSet.DoNextItem┘ │ │         │   
                              TfrmOMSet.InsertList┤   │ │         │   
                               ActivateOrderList┘ │   │ │         │   
                     TfrmRemDlg.btnFinishClick┤   │   │ │         │   
                             ActivateOrderHTML┤   │   │ │         │   
                    TfrmOrders.lstWriteClick┤ │   │   │ │         │   
    TfrmOrders.PlaceOrderForDefaultDialog...┘ │   │   │ │         │   
                              ActivateOrderSet┤   │   │ │         │   
                   TfrmRemDlg.btnFinishClick┤ │   │   │ │         │   
TfrmConsults.mnuActNewConsultRequestClick...┤ │   │   │ │         │   
     TfrmConsults.mnuActNewProcedureClick...┤ │   │   │ │         │   
                    TfrmOrders.lstWriteClick┤ │   │   │ │         │   
    TfrmOrders.PlaceOrderForDefaultDialog...┤ │   │   │ │         │   
                     TfrmMeds.mnuActNewClick┤ │   │   │ │         │   
                TfrmOMNavA.ActivateDialog...┤ │   │   │ │         │   
                     TfrmOMSet.DoNextItem...┘ │   │   │ │         │   
                       TfrmOMNavA.DoSelectList┘   │   │ │         │   
                     TfrmOMNavA.grdMenuKeyUp┤     │   │ │         │   
                   TfrmOMNavA.grdMenuMouseUp┘     │   │ │         │   
                                        SkipToNext┤   │ │         │   
                         TfrmOMSet.DoNextItem...┘ │   │ │         │   
                            TfrmOMSet.UMDelayEvent┘   │ │         │   
                               TfrmOMSet.InsertList...┤ │         │   
                                TfrmODMeds.SetupDialog┤ │         │   
                             TfrmODMeds.btnSelectClick┤ │         │   
                             TfrmODMeds.UMDelayClick┘ │ │         │   
                                    ExecuteRenewOrders┘ │         │   
                         TfrmOrders.mnuActRenewClick┤   │         │   
                           TfrmMeds.mnuActRenewClick┘   │         │   
                                        EncounterPresent┤         │   
                                      ReadyForNewOrder┤ │         │   
                           TfrmRemDlg.btnFinishClick┤ │ │         │   
        TfrmConsults.mnuActNewConsultRequestClick...┤ │ │         │   
             TfrmConsults.mnuActNewProcedureClick...┤ │ │         │   
                                     ChangeOrders...┤ │ │         │   
                                     ChangeOrdersEvt┤ │ │         │   
                                       CopyOrders...┤ │ │         │   
                                   TransferOrders...┤ │ │         │   
                            TfrmOrders.lstWriteClick┤ │ │         │   
                             TfrmMeds.mnuActNewClick┘ │ │         │   
                                     ReadyForNewOrder1┤ │         │   
            TfrmOrders.PlaceOrderForDefaultDialog...┘ │ │         │   
                              TfrmOrders.mnuActDCClick┤ │         │   
                             TfrmOrders.mnuActRelClick┤ │         │   
                            TfrmOrders.mnuActHoldClick┤ │         │   
                          TfrmOrders.mnuActUnholdClick┤ │         │   
                           TfrmOrders.mnuActRenewClick┤ │         │   
                         TfrmOrders.mnuActReleaseClick┤ │         │   
                         TfrmOrders.mnuActOnChartClick┤ │         │   
                            TfrmOrders.mnuActSignClick┤ │         │   
                                TfrmMeds.mnuActDCClick┤ │         │   
                              TfrmMeds.mnuActHoldClick┤ │         │   
                             TfrmMeds.mnuActRenewClick┤ │         │   
                            TfrmMeds.mnuActUnholdClick┤ │         │   
                              TfrmMeds.mnuActCopyClick┤ │         │   
                            TfrmMeds.mnuActRefillClick┘ │         │   
                                     EncounterPresentEDO┤         │   
                                   ReadyForNewOrder...┤ │         │   
                         TfrmOrders.mnuActChgEvntClick┤ │         │   
                          TfrmOrders.mnuActChangeClick┤ │         │   
                            TfrmOrders.mnuActCopyClick┤ │         │   
                       TfrmOrders.btnDelayedOrderClick┤ │         │   
                            TfrmMeds.mnuActChangeClick┤ │         │   
                              TfrmMeds.mnuActCopyClick┘ │         │   
                                             UpdateVisit┤         │   
                                           EditPCEData┤ │         │   
                             TfrmSurgery.cmdPCEClick┤ │ │         │   
                                 UpdateEncounterInfo┘ │ │         │   
                             TfrmNotes.cmdPCEClick┘   │ │         │   
                        TfrmVitals.btnEnterVitalsClick┘ │         │   
                                             UpdateVisit┤         │   
                                        EncounterPresent┘         │   
                         TfrmProblems.lstProbActsClick┘           │   
                     TfrmProblems.wgProbDataDblClick┤             │   
                           TfrmProblems.lstViewClick┘             │   
                   TfrmProblems.HighlightDuplicate┘               │   
                         TfrmProblems.AddProblem┤                 │   
              TfrmProblems.lstProbActsClick...┤ │                 │   
                 TfrmProblems.lstProbPickClick┤ │                 │   
              TfrmProblems.lstProbPickDblClick┤ │                 │   
              TfrmProblems.edProbEntKeyPress┘ │ │                 │   
                      TfrmProblems.UMPLLexicon┘ │                 │   
                   TfrmdlgProb.bbChangeProbClick┘                 │   
                                              ExecuteSignOrders...┤   
                                          TfrmReview.cmdOKClick...┘   

Calls

Name Declaration Comments
CryptAcquireContext function CryptAcquireContext(phProv :PHCRYPTPROV; pszContainer :LPAWSTR; pszProvider :LPAWSTR; dwProvType :DWORD; dwFlags :DWORD) :BOOL;stdcall; -
CryptReleaseContext function CryptReleaseContext(hProv :HCRYPTPROV; dwFlags :DWORD) :BOOL;stdcall; -
CryptSetProvParam function CryptSetProvParam(hProv :HCRYPTPROV; dwParam :DWORD; pbData :PBYTE; dwFlags :DWORD) :BOOL;stdcall; -

Called-By

Name Declaration Comments
checkPINValue function checkPINValue(InputForm: TComponent): TPINResult; -
tCryptography.SignData function SignData: boolean; -


Source

1578  function SetPinValue(PinValue: String; handle: Dword): Boolean;
1579  var
1580    handleValue: DWord;
1581    Container: String;
1582    isNewHandle: Boolean;
1583    text: array [0..5000] of char;
1584    Flags: Cardinal;
1585    text1: PByte;
1586    i: integer;
1587  begin
1588    isNewHandle := false;
1589    handleValue := handle;
1590    try
1591      if (handleValue = 0) then
1592      begin
1593        result := CryptAcquireContext(@handleValue,PChar(Container),pchar('ActivClient Cryptographic Service Provider'),1,0);
1594        if not result then
1595        begin
1596         // Unable to aquire context, check if failure was due to
1597         // absence of key container.
1598         result := CryptAcquireContext(@handleValue,
1599                    pchar(Container),
1600                    pchar('ActivClient Cryptographic Service Provider'),
1601                    1,
1602                    CRYPT_NEWKEYSET);
1603        end;
1604        if not result then
1605          exit;
1606        isNewHandle := true;
1607      end;
1608      Flags := 0;
1609      for i := 1 to Length(PinValue) do
1610      begin
1611        text[i-1] := PinValue[i];
1612      end;
1613      text[Length(PinValue)] := #0;
1614      text1 := @text;
1615      result := false;
1616      result := CryptSetProvParam(handleValue,33,text1,Flags);
1617    finally
1618      if isNewHandle and not (handleValue = 0) then
1619        CryptReleaseContext(handleValue, 0);
1620    end;
1621  end;