KIDS Distribution saved on Jan 12, 2010@09:43:23 Tuesday Jan 12 **KIDS**:VWHHS*00.1*5^ **INSTALL NAME** VWHHS*00.1*5 "BLD",7076,0) VWHHS*00.1*5^^0^3100112^n "BLD",7076,4,0) ^9.64PA^^ "BLD",7076,6.3) 2 "BLD",7076,"KRN",0) ^9.67PA^8989.52^19 "BLD",7076,"KRN",.4,0) .4 "BLD",7076,"KRN",.401,0) .401 "BLD",7076,"KRN",.402,0) .402 "BLD",7076,"KRN",.403,0) .403 "BLD",7076,"KRN",.5,0) .5 "BLD",7076,"KRN",.84,0) .84 "BLD",7076,"KRN",3.6,0) 3.6 "BLD",7076,"KRN",3.8,0) 3.8 "BLD",7076,"KRN",9.2,0) 9.2 "BLD",7076,"KRN",9.8,0) 9.8 "BLD",7076,"KRN",9.8,"NM",0) ^9.68A^7^7 "BLD",7076,"KRN",9.8,"NM",1,0) VWHSH0^^0^B4330045 "BLD",7076,"KRN",9.8,"NM",2,0) VWHSH3^^0^B2878674 "BLD",7076,"KRN",9.8,"NM",3,0) VWHSH8^^0^B1242378 "BLD",7076,"KRN",9.8,"NM",4,0) VWHSHCLX^^0^B2011086 "BLD",7076,"KRN",9.8,"NM",5,0) VWHSHCWN^^0^B1741215 "BLD",7076,"KRN",9.8,"NM",6,0) VWHSHGTM^^0^B1519925 "BLD",7076,"KRN",9.8,"NM",7,0) VWHSHTST^^0^B405235 "BLD",7076,"KRN",9.8,"NM","B","VWHSH0",1) "BLD",7076,"KRN",9.8,"NM","B","VWHSH3",2) "BLD",7076,"KRN",9.8,"NM","B","VWHSH8",3) "BLD",7076,"KRN",9.8,"NM","B","VWHSHCLX",4) "BLD",7076,"KRN",9.8,"NM","B","VWHSHCWN",5) "BLD",7076,"KRN",9.8,"NM","B","VWHSHGTM",6) "BLD",7076,"KRN",9.8,"NM","B","VWHSHTST",7) "BLD",7076,"KRN",19,0) 19 "BLD",7076,"KRN",19.1,0) 19.1 "BLD",7076,"KRN",101,0) 101 "BLD",7076,"KRN",409.61,0) 409.61 "BLD",7076,"KRN",771,0) 771 "BLD",7076,"KRN",870,0) 870 "BLD",7076,"KRN",8989.51,0) 8989.51 "BLD",7076,"KRN",8989.52,0) 8989.52 "BLD",7076,"KRN",8994,0) 8994 "BLD",7076,"KRN","B",.4,.4) "BLD",7076,"KRN","B",.401,.401) "BLD",7076,"KRN","B",.402,.402) "BLD",7076,"KRN","B",.403,.403) "BLD",7076,"KRN","B",.5,.5) "BLD",7076,"KRN","B",.84,.84) "BLD",7076,"KRN","B",3.6,3.6) "BLD",7076,"KRN","B",3.8,3.8) "BLD",7076,"KRN","B",9.2,9.2) "BLD",7076,"KRN","B",9.8,9.8) "BLD",7076,"KRN","B",19,19) "BLD",7076,"KRN","B",19.1,19.1) "BLD",7076,"KRN","B",101,101) "BLD",7076,"KRN","B",409.61,409.61) "BLD",7076,"KRN","B",771,771) "BLD",7076,"KRN","B",870,870) "BLD",7076,"KRN","B",8989.51,8989.51) "BLD",7076,"KRN","B",8989.52,8989.52) "BLD",7076,"KRN","B",8994,8994) "BLD",7076,"QUES",0) ^9.62^^0 "BLD",7076,"REQB",0) ^9.611^^ "MBREQ") 0 "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 7 "RTN","VWHSH0") 0^1^B4330045 "RTN","VWHSH0",1,0) VWHSH0 ;;GpZ; - ; IMPROVED HASHING UTILITY: MAIN INSTALL MODULE; 01/08/2010 "RTN","VWHSH0",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSH0",3,0) ;; VWHSH "RTN","VWHSH0",4,0) CHECK ;; "RTN","VWHSH0",5,0) N %S,%D,%ZR,HSH,HASH,HASHLIST,MUMPS,OS,PATH,SCR,ZTOS "RTN","VWHSH0",6,0) DO "RTN","VWHSH0",7,0) . IF $$EN^XUSHSH("TEST")="TEST" S HASH="NONE" QUIT "RTN","VWHSH0",8,0) . S HASH=$P($G(^%ZOSF("HASHLIST")),"|") ; ID installed HASH from earlier version. "RTN","VWHSH0",9,0) . S HASH=$S($$EN^XUSHSH("TEST")="TEST":"NONE",$L($G(HASH))>0:HASH,1:"LEGACY") ; query current XUSHSH "RTN","VWHSH0",10,0) DO DEFHASH "RTN","VWHSH0",11,0) IF HASHLIST'[" MD5 " S ABORT="gpg FAILURE; CHECK for gnupg dependency & its PATH" GOTO ABORT "RTN","VWHSH0",12,0) S %S=$S(ZTOS=8:"VWHSHGTM",HASHLIST["Linux":"VWHSHCLX",1:"VWHSHCWN") "RTN","VWHSH0",13,0) S %D="XUSHSH",U="^",SCR="I 1" "RTN","VWHSH0",14,0) IF $T(^VWHSHLEG)="" S %S="XUSHSH^"_%S,%D="VWHSHLEG^"_%D "RTN","VWHSH0",15,0) ; preserve old ^XUSHSH as ^VWHSHLEG "RTN","VWHSH0",16,0) S U="^",SCR="I 1" "RTN","VWHSH0",17,0) DO MOVE^ZTMGRSET "RTN","VWHSH0",18,0) QUIT "RTN","VWHSH0",19,0) ; "RTN","VWHSH0",20,0) DEFHASH ;; Entry point for changing default hash. "RTN","VWHSH0",21,0) IF '$L($G(HASH)) DO "RTN","VWHSH0",22,0) . S HASH=$P($G(^%ZOSF("HASHLIST")),"|") "RTN","VWHSH0",23,0) . QUIT:$L($G(HASH)) "RTN","VWHSH0",24,0) . S:$T(^VWHSHLEG)>"" HASH=$S($$EN^VWHSHLEG("TEST")="TEST":"NONE",1:"LEGACY") "RTN","VWHSH0",25,0) . QUIT:$L($G(HASH)) "RTN","VWHSH0",26,0) . S HASH="LEGACY" ; hard-coded default hash is LEGACY "RTN","VWHSH0",27,0) . QUIT "RTN","VWHSH0",28,0) S HASH=$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ") "RTN","VWHSH0",29,0) S MUMPS=^%ZOSF("OS"),ZTOS=$S(MUMPS["GT.M":8,MUMPS["OpenM":3) "RTN","VWHSH0",30,0) ; SHOULD ERROR IF neither GTM nor Cache. "RTN","VWHSH0",31,0) S HASHLIST=HASH_"||"_$$INIT^@("VWHSH"_ZTOS)() "RTN","VWHSH0",32,0) S ^%ZOSF("HASHLIST")=HASHLIST "RTN","VWHSH0",33,0) QUIT "RTN","VWHSH0",34,0) ; "RTN","VWHSH0",35,0) ABORT ;; Failed to find gpg hashes. "RTN","VWHSH0",36,0) U 0 W !,ABORT,! W $G(^%ZOSF("HASHLIST")),! "RTN","VWHSH3") 0^2^B2878674 "RTN","VWHSH3",1,0) VWHSH3 ;;GpZ; - ; IMPROVED HASHING UTILITY: INSTALL MODULE, OpenM; 01/08/2010 "RTN","VWHSH3",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSH3",3,0) ; "RTN","VWHSH3",4,0) QUIT "RTN","VWHSH3",5,0) ; "RTN","VWHSH3",6,0) INIT() S MUMPS=^%ZOSF("OS"),OS=$$OPENM("uname -o","Linux") "RTN","VWHSH3",7,0) IF OS'["Linux" S OS=$$OPENM("Ver","Microsoft") DO "RTN","VWHSH3",8,0) . S PIPE="PATH" "RTN","VWHSH3",9,0) . OPEN PIPE:"Q" USE PIPE READ PATH CLOSE PIPE "RTN","VWHSH3",10,0) . S PATH=PATH_";C:\""Program Files""\GNU\GnuPG\" "RTN","VWHSH3",11,0) . F I=1:1:$L(PATH,";") Q:($P(PATH,";",I)["GnuPG") "RTN","VWHSH3",12,0) . S PATH=$P(PATH,";",I) "RTN","VWHSH3",13,0) ELSE S PATH=$P($P($$OPENM("whereis gpg","gpg")," ",2),"gpg") "RTN","VWHSH3",14,0) S ZUT=$ZUTIL(68,40,1) "RTN","VWHSH3",15,0) S PIPE=$G(PATH)_"gpg --version" "RTN","VWHSH3",16,0) OPEN PIPE:"Q" "RTN","VWHSH3",17,0) F I=1:1:20 USE PIPE R HASHLIST QUIT:$ZEOF<0 D:HASHLIST["'gpg' is not recognized" q:HASHLIST["Hash:" "RTN","VWHSH3",18,0) . S HASHLIST="Hash:gpg_not_found:gpg_HASHES_not_available" "RTN","VWHSH3",19,0) CLOSE PIPE "RTN","VWHSH3",20,0) S ZUT=$ZUTIL(68,40,ZUT) "RTN","VWHSH3",21,0) S HASHLIST=HASHLIST "RTN","VWHSH3",22,0) S HASHLIST=$TR($P(HASHLIST,"Hash:",2),",") "RTN","VWHSH3",23,0) S HASHLIST=HASHLIST_" ||"_PATH_"||"_MUMPS_OS_"||" "RTN","VWHSH3",24,0) QUIT HASHLIST "RTN","VWHSH3",25,0) ; "RTN","VWHSH3",26,0) OPENM(PIPE,SEEKING) ;; "RTN","VWHSH3",27,0) N (PIPE,SEEKING) "RTN","VWHSH3",28,0) S ZUT=$ZUTIL(68,40,1) "RTN","VWHSH3",29,0) OPEN PIPE:"Q" "RTN","VWHSH3",30,0) F I=1:1:4 USE PIPE READ X Q:$ZEOF<0 Q:X[SEEKING "RTN","VWHSH3",31,0) CLOSE PIPE "RTN","VWHSH3",32,0) S ZUT=$ZUTIL(68,40,ZUT) "RTN","VWHSH3",33,0) QUIT X "RTN","VWHSH8") 0^3^B1242378 "RTN","VWHSH8",1,0) VWHSH8 ;;GpZ; - ; IMPROVED HASHING UTILITY: INSTALL MODULE, GT.M; 01/08/2010 "RTN","VWHSH8",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSH8",3,0) ; "RTN","VWHSH8",4,0) QUIT "RTN","VWHSH8",5,0) ; "RTN","VWHSH8",6,0) INIT() S MUMPS=^%ZOSF("OS"),OS=$$GTM("uname -o") "RTN","VWHSH8",7,0) S PATH=$P($P($$GTM("whereis gpg")," ",2),"gpg") "RTN","VWHSH8",8,0) S X=$TR("host:"_MUMPS_OS_":","^ ","-") "RTN","VWHSH8",9,0) O "PIPE":(COMM="gpg --version|grep -E ^Hash:":READONLY)::"PIPE" "RTN","VWHSH8",10,0) U "PIPE" R HASHLIST "RTN","VWHSH8",11,0) C "PIPE" U 0 "RTN","VWHSH8",12,0) S HASHLIST=$TR($P(HASHLIST,"Hash:",2),",") "RTN","VWHSH8",13,0) S HASHLIST=HASHLIST_" ||"_PATH_"||"_MUMPS_OS_"||" "RTN","VWHSH8",14,0) QUIT HASHLIST "RTN","VWHSH8",15,0) ; "RTN","VWHSH8",16,0) GTM(PIPE) ; "RTN","VWHSH8",17,0) N (PIPE) "RTN","VWHSH8",18,0) OPEN "PIPE":(command=PIPE)::"pipe" "RTN","VWHSH8",19,0) S X="" F I=1:1:4 U "PIPE" R XX Q:$ZEOF S X=X_XX "RTN","VWHSH8",20,0) CLOSE "PIPE" "RTN","VWHSH8",21,0) QUIT X "RTN","VWHSHCLX") 0^4^B2011086 "RTN","VWHSHCLX",1,0) XUSHSH ;;GpZ; - ; IMPROVED HASHING UTILITY: for Cache/Linux (VWHSHCLX); 01/08/2010 "RTN","VWHSHCLX",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSHCLX",3,0) ;; "RTN","VWHSHCLX",4,0) A S X=$$EN(X) Q "RTN","VWHSHCLX",5,0) ;; "RTN","VWHSHCLX",6,0) EN(X,HASH) ;; "RTN","VWHSHCLX",7,0) N (X,HASH) "RTN","VWHSHCLX",8,0) D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0 "RTN","VWHSHCLX",9,0) S HASHLIST=^%ZOSF("HASHLIST") "RTN","VWHSHCLX",10,0) S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ")) "RTN","VWHSHCLX",11,0) IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X) "RTN","VWHSHCLX",12,0) Q:HASHLIST'[(" "_HASH_" ") X "RTN","VWHSHCLX",13,0) S SED="sed -e 's/$/\r/'|" "RTN","VWHSHCLX",14,0) N PIPE,ZUT,I "RTN","VWHSHCLX",15,0) S ZUT=$ZUTIL(68,40,1) ;; MSM-style End-of-File Handling "RTN","VWHSHCLX",16,0) S PIPE=" echo "_X_"||"_SED_$P(HASHLIST,"||",3)_"gpg --print-md "_HASH "RTN","VWHSHCLX",17,0) OPEN PIPE:"Q" "RTN","VWHSHCLX",18,0) F I=1:1:4 USE PIPE R X Q:$ZEOF<0 S HASHOUT=$G(HASHOUT)_X "RTN","VWHSHCLX",19,0) CLOSE PIPE "RTN","VWHSHCLX",20,0) S ZUT=$ZUTIL(68,40,ZUT),X=HASHOUT "RTN","VWHSHCLX",21,0) Q $TR(X," ") "RTN","VWHSHCWN") 0^5^B1741215 "RTN","VWHSHCWN",1,0) XUSHSH ;;GpZ; ; IMPROVED HASHING UTILITY: Cache/Windows (VWHSHCWN);01/08/2010 "RTN","VWHSHCWN",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSHCWN",3,0) ;; "RTN","VWHSHCWN",4,0) A S X=$$EN(X) Q "RTN","VWHSHCWN",5,0) ;; "RTN","VWHSHCWN",6,0) EN(X,HASH) ;; "RTN","VWHSHCWN",7,0) N (X,HASH) "RTN","VWHSHCWN",8,0) D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0 "RTN","VWHSHCWN",9,0) S HASHLIST=^%ZOSF("HASHLIST") "RTN","VWHSHCWN",10,0) S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ")) "RTN","VWHSHCWN",11,0) IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X) "RTN","VWHSHCWN",12,0) Q:HASHLIST'[(" "_HASH_" ") X "RTN","VWHSHCWN",13,0) N PIPE,ZUT,I "RTN","VWHSHCWN",14,0) S ZUT=$ZUTIL(68,40,1) "RTN","VWHSHCWN",15,0) S PIPE=" echo "_X_"||"_$P(HASHLIST,"||",3)_"gpg --print-md "_HASH "RTN","VWHSHCWN",16,0) OPEN PIPE:"Q" "RTN","VWHSHCWN",17,0) F I=1:1:4 USE PIPE R X Q:$ZEOF<0 S HASHOUT=$G(HASHOUT)_X "RTN","VWHSHCWN",18,0) CLOSE PIPE "RTN","VWHSHCWN",19,0) S ZUT=$ZUTIL(68,40,ZUT),X=HASHOUT "RTN","VWHSHCWN",20,0) Q $TR(X," ") "RTN","VWHSHGTM") 0^6^B1519925 "RTN","VWHSHGTM",1,0) XUSHSH ;;GpZ; - ; IMPROVED HASHING UTILITY: GT.M Version (VWHSHGTM); 01/08/2010 "RTN","VWHSHGTM",2,0) V ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSHGTM",3,0) ;; "RTN","VWHSHGTM",4,0) A S X=$$EN(X) Q "RTN","VWHSHGTM",5,0) ;; "RTN","VWHSHGTM",6,0) EN(X,HASH) ;; "RTN","VWHSHGTM",7,0) N (X,HASH) "RTN","VWHSHGTM",8,0) D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0 "RTN","VWHSHGTM",9,0) S HASHLIST=^%ZOSF("HASHLIST") "RTN","VWHSHGTM",10,0) S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ")) "RTN","VWHSHGTM",11,0) IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X) "RTN","VWHSHGTM",12,0) Q:HASHLIST'[(" "_HASH_" ") X "RTN","VWHSHGTM",13,0) S SED="sed -e 's/$/\r/'|" "RTN","VWHSHGTM",14,0) OPEN "PIPE":(COMM=SED_"gpg --print-md "_HASH)::"PIPE" "RTN","VWHSHGTM",15,0) USE "PIPE" W X,! W /EOF "RTN","VWHSHGTM",16,0) F R X Q:$ZEOF S HASHOUT=$G(HASHOUT)_X "RTN","VWHSHGTM",17,0) CLOSE "PIPE" "RTN","VWHSHGTM",18,0) Q $TR(HASHOUT," ") "RTN","VWHSHTST") 0^7^B405235 "RTN","VWHSHTST",1,0) XUSHSH ;JL.Z; ROBUST PASSWORD HASH TEST xushsh; 11 SEPTEMBER 2009 "RTN","VWHSHTST",2,0) ;;8.0;KERNEL;**60**;Jul 10, 1995 "RTN","VWHSHTST",3,0) ;; "RTN","VWHSHTST",4,0) ;; "RTN","VWHSHTST",5,0) ;;SF-ISC/STAFF - PASSWORD ENCRYPTION ;3/23/89 15:09 ; 4/14/05 1:22pm "RTN","VWHSHTST",6,0) ;;8.0;KERNEL;;Jul 10, 1995 "RTN","VWHSHTST",7,0) ;; Input in X "RTN","VWHSHTST",8,0) ;; Output in X "RTN","VWHSHTST",9,0) ;; Algorithm for VistA Office EHR encryption (BSL) "RTN","VWHSHTST",10,0) A ; "RTN","VWHSHTST",11,0) S X=$$EN(X) "RTN","VWHSHTST",12,0) Q "RTN","VWHSHTST",13,0) ; "RTN","VWHSHTST",14,0) EN(X) "RTN","VWHSHTST",15,0) Q X "RTN","VWHSHTST",16,0) "RTN","VWHSHTST",17,0) "RTN","VWHSHTST",18,0) "RTN","VWHSHTST",19,0) "RTN","VWHSHTST",20,0) "RTN","VWHSHTST",21,0) "RTN","VWHSHTST",22,0) "RTN","VWHSHTST",23,0) "RTN","VWHSHTST",24,0) "RTN","VWHSHTST",25,0) "RTN","VWHSHTST",26,0) "RTN","VWHSHTST",27,0) "RTN","VWHSHTST",28,0) "RTN","VWHSHTST",29,0) "RTN","VWHSHTST",30,0) "RTN","VWHSHTST",31,0) "RTN","VWHSHTST",32,0) "RTN","VWHSHTST",33,0) "RTN","VWHSHTST",34,0) "RTN","VWHSHTST",35,0) "VER") 8.0^22.0 **END** **END**