activelock-development Mailing List for ActiveLock (Page 17)
Brought to you by:
ialkan
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
(52) |
Aug
(170) |
Sep
(34) |
Oct
(62) |
Nov
(46) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(2) |
Mar
|
Apr
(17) |
May
(14) |
Jun
(31) |
Jul
(59) |
Aug
(18) |
Sep
(3) |
Oct
|
Nov
|
Dec
(5) |
2005 |
Jan
|
Feb
(10) |
Mar
(3) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael E. C. <mc...@us...> - 2003-08-07 17:43:26
|
Update of /cvsroot/activelock/activelock/src/vbdox In directory sc8-pr-cvs1:/tmp/cvs-serv28087/src/vbdox Added Files: ActiveLock2.vbp Log Message: Inital Checkin After Restructure --- NEW FILE: ActiveLock2.vbp --- Type=OleDll Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#STDOLE2.TLB#OLE Automation Class=IActiveLock; ..\IActiveLock.cls Class=Globals; ..\Globals.cls Class=IKeyStoreProvider; ..\IKeyStoreProvider.cls Class=ProductLicense; ..\ProductLicense.cls Class=ActiveLockEventNotifier; ..\ActiveLockEventNotifier.cls Module=modActiveLock; ..\modActiveLock.bas Startup="(None)" HelpFile="" Title="ActiveLock2" ExeName32="ActiveLock2.dll" Command32="" Name="ActiveLock2" HelpContextID="0" CompatibleMode="1" CompatibleEXE32="ActiveLock2.dll" MajorVer=2 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="The ActiveLock Software Group" VersionLegalCopyright="Copyright © 2003" VersionProductName="ActiveLock" |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:43:25
|
Update of /cvsroot/activelock/activelock/binaries In directory sc8-pr-cvs1:/tmp/cvs-serv28087/binaries Added Files: ALCrypto.dll ActiveLock2.dll Log Message: Inital Checkin After Restructure --- NEW FILE: ALCrypto.dll --- MZ $ ò!Yò!Yò!Y¯¯*Yó!Yq/Yç!Y¯¯+Y¢!Y2Yõ!Yò Y®!Y¯+Yû!Y¯*Yó!Y5'Yó!Y %Yó!YRichò!Y IfùfwäÃVt$3ÀfL ùu%L$(IL$(y|$ÇD$( D$;ÁÇD$( Ifùfwä í~Í3ÀûÑéó«Éfó«SèZ$ D$(t$ëD$(3ÉfLhþfthþL$L$,I;ét3öfthT$3ÉfhÁâÊ3ÒÁ÷÷3ÒØÁ÷÷D$¯ÃÊÁáÎ;ÁvKáÿÿ f;ÁvG+ÈD$f îêHD$uÐ;|$tMT$43ÀJÿ É|?T$0t$(JÍNt$4t$3ÿ3öf:f1øêé7t$fAÁèNt$uÙKD$8 Àt L$,t$4|$<+Í+ÎÁáÏQSPè Hf= Hf= ;T$,~T$,L$0BÆ;Ñ~´fT$,_^]f[ÄÃ_f(^][ÄÃD$L$j Hf= D$f0ë3À+È+Êf Òf÷Ðtf;ÈÒBëf;ÁÒ÷Úf Ét\$3ÉCfÆ;Ù~D$ fT$PfèðèÿÿÄÇ_^][ÄÃD$ _^][ÄÃD$Ç ÁãÓX×\$,Ú÷Óï#Ù#êÝl$,Ýêó¯|Ư|õÁãÁîÞpÚt$ó#ë÷Ö#÷õl$õñ*ÆGÆ*Æ úÖþï#×÷Õ#éêP êT$HÝØiÃØÁêÁãÓ×ê÷Õß#î#ÚëX$ë\$Dͯ÷ Ïx0Î|$8L$0#l$0÷Ñ#ËÍÏÑH4L$(º"Â"kÁçÁêúT$0úêÏ#ï÷Ñ#ÎÍl$(ÍÙqýÃq ÞñÚ#óît$$îýê·b%öÇb%ÁîÁç÷|$Pó#û#îýl$<ýù@³@ÀÇ@³@ ø\$Áþ÷ÐÇ3ÆÃ\$Ч# ÁêúÑþ÷Ò×3ÖÓ\$$Â}ôïÿ}ô ÁèÇù÷ׯø3þû\$(úC£ÇC ÇùÆ÷×ø3þý×l$Dº»Ò D$T$¹ FNPQëVFRPUèÌÿÿvÄÎN ÉØtVSèØÿÿÄGÖN ÒuìSè×ÿÿÀL$ âUÂÁøè*ËÿÿSè$ËÿÿÄ_^][ÃD$ ÀD$HQuPD$RPèËÿÿÄÃPD$RPèËÿÿÄÃSVt$WFPèP×ÿÿNøQèE×ÿÿ\SèËòÿÿVøRèàÖÿÿÁøFPèÒÖÿÿÁøGNQèÃÖÿÿÁøGVRè´ÖÿÿGFOPQèØÿÿVÀÇRPèõ×ÿÿD$@Ä,Ç_^[ÃVt$F Àt Pè.ÊÿÿÄF Àt PèÊÿÿÄF Àt PèÊÿÿÄv öt VèòÿÿÄ^ÃìSUl$VWEPèÖÿÿÀMâQÂØÁûèÖÿÿÀ|$(âwÂÆ è^ÀÿÿSèXÀÿÿÄ$3À_^[ ÿÿÿÄÃD$jPh`GhÀGèêþÿÿÄÃD$L$RT$RQPh HhHè D$T$¹ è¸ Pèê j èg 3ÀÇIuøãu D$[^_ÃD$ø øtøuVTøUøNTuIVXÇFX ÿtÀ û@tÈÿë{VuVçþè. ÿ AúÐ|Ñ^Ãè»ýÿÿ=I u} ëj © SPè % øuè +MðñMøÁþNþ?~j?^;÷ LüëMøuðÑN L2üuô Éy>u;°OuMü; ¨Ou%°O } SQ»6MKCkY[ ÐÿÿYF0 ÀtPèüÏÿÿYF8 ÀtPèîÏÿÿYF@ ÀtPèàÏÿÿYFD ÀtPèÒÏÿÿYFP=¸7tPèÁÏÿÿYVèºÏÿÿYj ¡ NÆ$ À$Á ÃH÷ØÀÀõPÿpÀ NëNCû|ÿ5 Oÿ¸À ú t?ú t:} @8uû@8uö+Ç@èUèQÈÿÿðY;óu3öëUWVèõÿÿÄWÿÄÀ uÿEðÆ jèÖÿÿYëVÿ×E_^[]ÃUìE Àu]Ã=ôJ ÿlÀ B8ÙtÑÉtQ÷ ¿ÿþþ~Á÷3Ëðùñÿðÿ3Ï3ÆÂá Àuõ^[_3ÀÃF8ðuë~ÿaät(Æ8àuÄAÀtfÿÁ8àtßë±3À^[_ÂéÓþÿÿGÿ^[_ÃÇ^[_ÃUìWVSMã&Ù}÷3Àò®÷ÙËþuó¦Fÿ3É:GÿwtII÷ÑÁ[^_ÉÃÌÌÌÌÌÌÌÌT$L$ ÒtG3ÀD$Wùúr-÷Ùát+ÑGIuúÈÁàÁÈÁàÁÊâÁétó« ÒtGJuúD$_ÃD$ÃUììSVWjèqÍÿÿÿuè ¶À;Áw+ȼìþÿÿA¸ ÙÁéó«ËáóªBBBÿÀuÐ_[j jèÅÇÿÿYëVÿ×D$_^[ÃUìQ=ôJ jj #EÉÃUìjÿh Àt&:au% ätÁè:Au Àt:auÁ äuÒÿ3ÀÃÀÑà@Ãÿ÷ Àtà÷ ÀtÊ:auÉ ätÁÁëÌÌÌÌÌÌÌÌÌÌÌÌUìV3ÀPPPPPPPPUI ÀtB«$ëóuÉÿA ÀtF£$sòÁÄ ^ÉÃÌÌUìV3ÀPPPPPPPPUI ÀtB«$ëóu Àt F£$sóFÿÄ ^ÉÃVt$;5 Os8ÎÆÁùà NÀöDtWVètøÿÿVè( ÿlÀ Àt.F'G8Ätò,A<Éá ÁAà,A<Éá ÁA8àtÒÀÿ¾ÀëxðÿTL=PL Àt'FG8ØtòPSè8 jè$ÀÿÿÄÃ[^_ÉÃUìWVSMÉé ät! ÀtFG8ür8Üwæ8ør8ØwÆ8Äu Iu×3É8Ä ¡X8X#Æ ÀuÃëeX8ÃÁø¶ÈöDJte ! 1 9 = I W a c g o u { © « µ ½ Á Ï Ù å ç í ñ ó #)-?GQW]eo{·¹ÃËÏÝáéõû%/1A[_amsw³µ¹»Çãåëñ÷û ! + - = ? O U i y £ « · ½ Ç É Í Ó Õ Û å ç ó ý ÿ !'/5;KWY]kqu}±·¹ÃÑÕÛíïù %)1CGMOSY[gk¡£§³µ»ÑÓÙéïûý!%+9=?Qisy{ £¥¯±»ÁÉçñóý'-9EGY_cio¡¥§«ÃÅÑ×çïõû #)+17AGS_qsy}¯³µ¹¿ÁÍÑßý '-7CEIOW]gim{¯»ÃÕÙßëíóùÿ!/3;EMYkoqu¡±·½ËÕãç%)+7=ACI_egk}µ»ÁÅÍ×÷ %39=EOUimou©¯µ½ÃÏÓÙÛáåëí÷ù #'3A]cw{¥³¹¿ÉËÕáéóõÿ57;CIMUgqw} §³¹ÁÇÑ×Ùßåëõý13EIQ[y£©«±µÇÏÛíý!#-/5?MQik{}§«±¹ÉÏÕ×ãóûÿ#%/17;AGOUYeks§¿ÅÑ×Ùï÷ '+-3=EKOUs£¥µ·Éáóù !#59?AKS]ciqu{}¥§³·Å×Ûáõù%+/=IMOmq¡»ÁÅÇËÝãï÷ý 9IKQgu{ ¥¯µ»Óáçëóÿ ' ) - 3 G M Q _ c e i w } ¡ « ± ¹ à Šã ç í ï û ÿ !!5!A!I!O!Y))!)#)?)G)])e)i)o)u)))))¡)§)«)¿)Ã)Õ)×)ã)é)í)ó)***%*/*O*U*_*e*k*m*s******¹*»*Å*Í*Ý*ã*ë*ñ*û*+'+1+3+=+?+K+O+U+i+m+o+{++++£+¥+©+½+Í+ç+ë+ó+ù+ý+ ,,,#,/,5,9,A,W,Y,i,w,,,,,,³,·,Ë,Ï,Û,á,ã,é,ï,ÿ,---;-C-I-M-a-e-q---¡-©-³-µ-Å-Ç-Ó-ß-... ...%.-.3.7.9.?.W.[.o.y.. ....£.¥.±.·.Á.Ã.Í.Ó.ç.ë./ ///'/)/A/E/K/M/Q/W/o/u/}///¥/«/³/Ã/Ï/Ñ/Û/Ý/ç/í/õ/ù/0 0#0)070;0U0Y0[0g0q0y0}0 000£0©0¹0¿0Ç0Ë0Ñ0×0ß0å0ï0û0ý01 11!1'1-191C1E1K1]1a1g1m1s11111©1±1Ã1Ç1Õ1Û1í1÷1ÿ1 2222)252Y2]2c2k2o2u2w2{2222§22³2·2É2Ë2Ï2Ñ2é2í2ó2ù23%3+3/353A3G3[3_3g3k3s3y333¡3£33¹3Á3Ë3Ó3ë3ñ3ý34444474E4U4W4c4i4m444444¥4¯4»4É4Ó4á4ñ4ÿ4 555-535;5A5Q5e5o5q5w5{5}555555¡5·5½5¿5Ã5Õ5Ý5ç5ï5666#6165676;6M6O6S6Y6a6k6m6666¯6¹6»6Í6Ñ6ã6é6÷67777?7E7I7O7]7a7u777£7©7«7É7Õ7ß7ñ7ó7÷788!83858A8G8K8S8W8_8e8o8q8}888§8·8Å8É8Ï8Õ8×8Ý8á8ã8ÿ899#9%9)9/9=9A9M9[9k9y9}999999¡9§9¯9³9»9¿9Í9Ý9å9ë9ï9û9::::':+:1:K:Q:[:c:g:m:y::¥:©:·:Í:Õ:á:å:ë:ó:ý:;;;!;#;-;9;E;S;Y;_;q;{;;;;;¥;§;;·;¹;Ã;Ë;Ñ;×;á;ã;õ;ÿ;< <<<<)<5<C<O<S<[<e<k<q< <<<§<µ<¿<Ç<Ñ<Ý<ß<ñ<÷<= ====!=-=3=7=?=C=o=s=u=y={= ====«=¯=µ=»=Á=É=Ï=ó=> >>>>#>)>/>3>A>W>c>e>w>>>¡>¹>½>¿>Ã>Å>É>×>Û>á>ç>ï>ÿ>? ?7?;?=?A?Y?_?e?g?y?}????¿?Í?Ó?Ý?é?ë?ñ?ý?@!@%@+@1@?@C@E@]@a@g@m@@@£@©@±@·@½@Û@ß@ë@÷@ù@ AAAA!A3A5A;A?AYAeAkAwA{AA«A·A½A¿AËAçAïAóAùABBBB#B)B/BCBSBUB[BaBsB}BB BBBBBµBÅBËBÓBÝBãBñBCCC%C'C3C7C9COCWCiCCCC¥C©C¯CµC½CÇCÏCáCçCëCíCñCùC DDD#D)D;D?DEDKDQDSDYDeDoDDD¡D¥D«DD½D¿DÉD×DÛDùDûDEEE+E1EAEIESEUEaEwE}EEE£EE¯E»EÇEÙEãEïEõE÷EFF FF%F'F3F9F=FCFEF]FyF{FFFFFF©F±FÇFÉFÏFÓFÕFßFåFùFGGG#G)G/G5G9GKGMGQG]GoGqG}GGGGG¥G±G¿GÃGËGÝGáGíGûGHHHHHH1H=HGHUHYH[HkHmHyHHH¡H¹HÍHåHïH÷HI III+I7I=IEIUIcIiImIsII«IµIÓIßIáIåIçIJJJ#J9JAJEJWJ]JkJ}JJJJJ±JÃJÅJÕJÛJíJïJKK KKK%K1K;KCKIKYKeKmKwK KK³KµK»K¿KËKÙKÝKßKãKåKéKñK÷KLL LLLL!L-L3LKLULWLaLgLsLyLLLLLÍLáLçLñLóLýLMMM'M)M/M3MAMQMYMeMkMMMMMM±M³MÉMÏM×MáMíMùMûMNNNNN+N5N7N=NONSN_NgNyN NNNNN¡N¯N³NµNÁNÍNÑN×NéNûNO OO%O-O?OIOcOgOmOuO{OO OOO¥O©O¯O·O»OÏOÙOÛOýOÿOPPP)P5P?PEPGPSPqPwPPPP¡P·PÉPÕPãPíPïPûPQQ QQQ#Q%Q5QGQIQqQyQQQQ¡Q£Q§Q¹QÁQËQÓQßQãQõQ÷Q RRRRRR'RCRERKRaRmRsRRRRR¥R«R±R»RÃRÇRÉRÛRåRëRÿRSS#SASESGSKS]ScSSSSSSSS«S¹SÛSéSïSóSõSûSÿS TTTT5T7T;TATITSTUT_TaTkTmTqTTTT©T³TÅTÑTßTéTëT÷TýTU UU'U+U9U=UOUQU[UcUgUoUyU UU©U±U·UÉUÙUçUíUóUýUVVVV#V/V3V9V?VKVMV]V_VkVqVuVVVVVVV±VÕVçVóVÿVWWWWWW#WGWMW_WaWmWwW}WW¡W©W¯WµWÅWÑWÓWåWïWX XXX'X+X-XUX[X]XmXoXsX{XXX£X©X«XµX½XÁXÇXÓXÕXßXñXùXÿXYYY!YEYKYMYWY]YuY{YYYY±Y³Y½YÑYÛYãYéYíYóYõYÿYZ ZZZZZ)Z/Z;ZMZ[ZgZwZZ ZZZ¡Z£Z©Z»ZÓZåZïZûZýZ[[[[%[+[=[I[K[g[y[[[£[±[É[Õ[ë[ñ[ó[ý[\ \\\\)\/\3\9\G\K\M\Q\o\u\w\}\\\§\½\¿\Ã\É\Ñ\×\Ý\í\ù\]]]]]1]=]A]G]O]U][]e]g]m]y]]£]©]]¹]Á]Ç]Ó]×]Ý]ë]ñ]ý]^ ^^^!^'^+^-^1^9^E^I^W^i^s^u^ ^^^¥^¯^·^»^Ù^ý^ __'_3_5_;_G_W_]_c_e_w_{___¡_³_½_Å_Ï_Õ_ã_ç_û_`#`/`7`S`_`e`k`s`y` ```»`¿`Í`Ù`ß`é`õ` aaaa-a9aKaUaWa[aoayaaaaaaµaÇaÉaÍaáañaÿa bbb!b'b;bAbKbQbSb_bebbbbbb¥bbÕb×bÛbÝbébûbÿbc ccc/cAcCcOc_cgcmcqcwc}cc³cÁcÅcÙcécëcïcõcdd dd!d'd+d9dCdIdOd]dgdud dddd£d«dÁdÇdÉdÛdñd÷dùdee!e/e9e?eKeMeSeWe_eqe}eeee¡e¥ee¹eÅeãeóeûeÿefff)f1f;fAfGfMf[fafsf}ffffffµf¹fÅfÍfÑfãfëfõfgggg'g1g7g?gEgQg[gogygg gg«g½gÁgÍgßgågh hhh-h9h;h?hEhKhMhWhYh]hchihkhqhhhh±h½hÅhÑh×háhíhïhÿhii ii)i/iCiGiIiOieikiqiiii£i³iµi»iÁiÅiÓißiãiåi÷ij+j7j=jKjgjijuj{jjjjj£jÁjÉjájçjkkk#k'k-k9kAkWkYk_kukkkkkk½k¿kÛkákïkÿkll)l+l1l5lUlYl[l_lelglslwl}llllll¡l©l¯l³lÇlËlëlõlýl mm%m'm+m1m9m?mOm]mamsm{mmmm¥m±m·mÁmÃmÍmÏmÛm÷mnnn)n3n;nEnunwn{nnnnnn½n¿nãnénónùnûn oooo/o=oMoSoaoeoyo}oo oooo£o¯oµo»o¿oËoÍoÓo×oãoéoñoõo÷oýoppp'p3p9pOpQpWpcpupypppp¥p«p»pÃpÇpÏpåpípùpÿpqq!q3qQqYq]q_qcqiqqqqqÃqÉqËqÑqÛqáqïqõqûqrrrr%r/r;rCrUrgrqrwrrrrr£r³rÇrËrÍr×rÙrãrïrõrýrs s!s+s=sWs[sasss ssss«s½sÁsÉsßsåsçsóstt-t9t?tAt]tkt{tttt§t«t±t·t¹tÝtátçtûtuu%u;u=uMu_ukuwuuuuuu¡u§uµu¹u»uÑuÙuåuëuõuûuvv!v-v3v=v?vUvcvivovsv vvvµv·vÃvÛvßvñvwwww!w-w5wAwKwYw]w_wqww§ww³w¹wÅwÏwÕwáwéwïwówùwx%x+x5x=xSxYxaxmxwxyxx xxxx¡xx¿xÓxÙxÝxåxûxyy%y+y9y?yKyWy]ygyiysyyy£y«y¯y±y·yÉyÍyÏyÕyÙyóy÷yÿyzzzzz#z'z-zKzWzYz_zeziz}zzzz¡z¥zízõzùz{{{{+{5{7{;{O{U{_{q{w{{{¡{©{¯{³{Ç{Ó{é{ë{ï{ñ{ý{|||1|7|I|g|i|s||||£|Õ|Û|å|í|÷|} }}}3}9};}?}E}M}S}Y}c}u}w}}}}}·}½}¿}Ë}Õ}é}í}û}~~)~+~/~5~A~C~G~U~a~g~k~q~s~y~}~~~~§~~¹~»~Ó~ß~ë~ñ~÷~û~139=CK[acmy¯µÃÉÍÏí!#?AGKew¥«½ÉË×Ûáçõÿ /1;CSY_}§¯³»Çß %13?CEIOao{ ±µ½ÇÏÕßñùý!)-35?AMQSW]eio§±¹ËÕ×Ýçéíÿ#%;AGOaew©¯Íãïñ÷ K O Q ] c m o { £ ¥ © · Í Ó Õ Û á ë ù ý ÿ !/9?AMcu}¥§³·ÃÅÏÑ×éïõ+/5GY[kqw ¡©³»ÅÇËÝ÷!7=CQag{ ¥ÏÓëíóý #'-9EMQWc³¹ÃÏÑÛïõûÿ#5AIO[_mwy £³µÁÇËÍÑ×ñõ !W]£©¯»ÕÙÛá÷ýÿ'9;GS]o{§«±ÅÝãéó #)7A[_qy §µÅËÓÙßõ÷%Qcisuy«¯±½ÇÏÓÛçë÷ÿ#-?EKSYeiq«³·¹ÉÕáïù #%17;ACOSms ¯¹ÁÅßéý'3=EOQag{ »½ÁÉÙÛíñóù!/AGWkqu}¡«¹¿ÃÅËÕ×çó;=CUs§³µÇ×Ýåï÷ ?EKOcgim{¥µÃáç !'-59KW]_u±·¹½Ïãéù/15;=e¡§©ÁËÑÓåïûý %+379CIQ[]o¥±·ÃÍÓÙë÷ )/;AQko§±¹¿ÃÉÏÝãõùû )1;=AGIS} ¯¿ÇËÍ×åñû%KOUWau·ÃÇÏëó÷ÿ'/5EQYcow¡§±·½ÅËÏÝù#+/5IM_eg£¯»¿Á×Ùãéñý'-1=U[a¥©Ãçëíñ#'-3;GQS_o¡³½¿õùû#/7;CSamsw}£¯³ÁÇßåëõ ! 3 9 ? O W [ a u y « µ · ½ É Ù Û ß å ñ ó ý ¡¡¡¡¡)¡/¡5¡A¡S¡u¡}¡¡¡¥¡«¡¡·¡Ã¡Å¡ã¡í¡û¡¢¢#¢)¢/¢1¢C¢G¢M¢k¢y¢}¢¢¢¢¢¢¢©¢¯¢³¢»¢Å¢Ñ¢×¢÷¢£ ££!£+£1£I£Q£U£s£y£{££££¥£©£¯£·£Ç£Õ£Û£á£å£ç£ñ£ý£ÿ£¤¤!¤#¤'¤;¤M¤W¤Y¤c¤i¤u¤¤¤¤¹¤Ã¤Å¤Ë¤Ñ¤Õ¤á¤í¤ï¤ó¤ÿ¤¥)¥+¥5¥;¥C¥S¥[¥a¥m¥w¥ ¥¥¥¥£¥§¥©¥Á¥Å¥Ë¥Ó¥Ù¥Ý¥ß¥ã¥é¥÷¥û¥¦ ¦%¦=¦I¦K¦Q¦]¦s¦¦¦¦«¦µ¦»¦Á¦É¦Í¦Ï¦Õ¦ß¦ç¦ñ¦÷¦ÿ¦§§#§)§-§E§M§W§Y§e§k§o§§§«§±§¹§¿§É§Ñ§×§ã§í§û§¨¨¨)¨+¨7¨;¨U¨_¨m ¨}¨¨¨©¨µ¨Á¨Ç¨×¨å¨ý¨©©©1©7©9©C©© ©©©©£©±©»©Á©Ù©ß©ë©ý©ªª5ª9ª;ªGªMªWªYª]ªkªqªªªªª«ª¿ªÅªÉªéªïª«««« «««M«[«q«s«««§«¯«¹«»«Á«Å«Ó«×«Ý«ñ«õ«û«ý« ¬¬¬'¬7¬9¬E¬O¬W¬[¬a¬c¬¬¬¬¬©¬«¬¯¬½¬Ù¬á¬ç¬ë¬í¬ñ¬÷¬ù¬?ES]_e¡¥ÃËÑÕÛçóõùÿ®®#®+®I®M®O®Y®a®g®k®q®®®®®§®¹®Å®Ñ®ã®å®é®õ®ý® ¯¯'¯+¯3¯C¯O¯W¯]¯m¯u¯¯¯¯¯£¯«¯·¯»¯Ï¯Õ¯ý¯°°°?°A°G°K°Q°S°i°{°}°°°±°¿°Ë°Ï°á°é°í°û°±±±±±±1±A±M±[±e±s±y±±©±³±¹±¿±Ó±Ý±å±ñ±õ±²²²²-²?²I²[²c²i²m²{²²²©²·²½²Ã²Ç²Ó²ù²ý²ÿ²³ ³³³'³-³?³E³w³}³³³³³¥³Å³Ë³á³ã³í³ù³´ ´´´5´=´C´I´[´e´g´k´w´´´´µ´¿´Á´Ç´Ý´ã´å´÷´µ µµ-µ?µKµgµiµoµsµyµµµµ£µ«µ¯µ»µÕµßµçµíµýµÿµ ¶¶)¶/¶3¶9¶G¶W¶Y¶_¶c¶o¶¶¶¶¶¥¶±¶³¶×¶Û¶á¶ã¶í¶ï¶· ···)·5·G·U·m···©·Á·Ë·Ñ·Ó·ï·õ·¸¸¸¸!¸'¸+¸-¸9¸U¸g¸u¸ ¸¸¥¸¯¸·¸½¸Á¸Ç¸Í¸Õ¸ë¸÷¸ù¸¹¹¹¹/¹9¹;¹G¹Q¹c¹¹¹¹¹¹¡¹§¹¹·¹Ë¹Ñ¹Ý¹ç¹ï¹ù¹º ºº%º)º+ºAºSºUº_ºaºeºyº}ºº¡º£º¯ºµº¿ºÁºËºÝºãºñºýº »»'»-»=»C»K»O»[»a»i»m»»»»±»É»Ï»Û»í»÷»ù»¼¼#¼3¼;¼A¼E¼]¼o¼w¼¼¼¼«¼·¼¹¼Ñ¼Õ¼á¼ó¼ÿ¼ ½½½½5½A½O½Y½_½a½g½k½q½½½½½½³½»½Í½Ñ½ã½ë½ï½¾ ¾¾!¾%¾'¾[¾]¾o¾u¾y¾¾¾¾¾¾©¾±¾µ¾·¾Ï¾Ù¾Û¾å¾ç¾ó¾ù¾¿3¿9¿M¿]¿_¿k¿q¿{¿¿¿¿¿¡¿¿¹¿Ï¿Õ¿Ý¿á¿ã¿ó¿ÀÀÀÀ)À/À1À7À;ÀGÀeÀmÀ}ÀÀÀÀ³ÀµÀ»ÀÓÀ×ÀÙÀïÀñÀÁÁ ÁÁÁ+Á3Á7ÁEÁIÁ[ÁsÁyÁ{ÁÁÁÁÁ½ÁÃÁÍÁÛÁáÁçÁÿÁÂÂÂ!Â/Â?ÂKÂMÂSÂ]ÂwÂ{Â}§³½ÂÏÂÕÂãÂÿÂÃÃÃÃÃ%ÃGÃIÃOÃeÃgÃqÃÃà ÃÃçÃõÿÃÇÃËÃÑÃÓÃãÃéÃïÃÄÄ-Ä3Ä7ÄUÄWÄaÄoÄsÄÄÄÄĥķĻÄÉÄÏÄÓÄëÄñÄ÷Ä ÅÅÅAÅGÅQÅ_ÅkÅoÅuÅwÅÅÅšŧÅÃÅ×ÅÛÅïÅûÅÆ#Æ5ÆAÆOÆUÆYÆeÆ ÆÆÆ¡Æ©Æ³Æ¹ÆËÆÍÆÝÆëÆñÆÇ ÇÇÇ-Ç1Ç9ÇWÇcÇgÇsÇuÇǥǻǽÇÁÇÏÇÕÇáÇùÇýÇÿÇÈÈÈ'È)È9È?ÈSÈWÈkÈÈÈÈÈȡȷÈÏÈÕÈÛÈÝÈãÈçÈíÈïÈùÈÉÉÉÉÉ/É7É=ÉAÉSÉ_ÉkÉyÉ}ÉÉÉÉɯɵɿÉËÉÙÉßÉãÉëÉÊÊ Ê%Ê7Ê9ÊKÊUÊ[ÊiÊsÊuÊÊÊÊÊʵʻÊÃÊÉÊÙÊåÊíÊËË ËË)Ë5Ë;ËSËYËcËeËqËËË˳˹ËÃËÑËÕË×ËÝËéËÿË ÌÌÌ#Ì+ÌAÌCÌMÌYÌaÌÌÌỊ̧̀ÌÑÌåÌéÌ ÍÍÍ%Í1Í=Í?ÍIÍQÍWÍ[ÍcÍgÍÍÍÍÍ»ÍÁÍÓÍÙÍåÍçÍñÍ÷ÍýÍÎÎ!Î/ÎGÎMÎQÎeÎ{Î}ÎÎÎΥΧηÎÉÎ×ÎÝÎãÎçÎíÎõÎÏÏÏ7Ï;ÏMÏUÏ_ÏaÏeÏmÏyÏ}ÏÏÏϩϳϵÏÅÏÍÏÑÏïÏñÏ÷ÏÐÐÐ!Ð3Ð=ÐKÐOÐiÐoÐÐ ÐÐУЫнÐÁÐÍÐçÐÿÐÑÑ-Ñ/ÑAÑWÑYÑ]ÑiÑkÑqÑwÑ}ÑÑÑÑѱѽÑÃÑÕÑ×ÑãÑÿÑ ÒÒÒÒ5Ò;ÒGÒYÒaÒeÒyÒÒÒÒÒÒ£Ò§Ò³Ò¿ÒÇÒãÒéÒñÒûÒýÒÓ!Ó+ÓCÓKÓUÓiÓuÓ{ÓÓÓÓ¥Ó±ÓÉÓëÓýÓÔÔÔ'Ô/Ô3Ô;ÔKÔYÔ_ÔcÔiÔÔÔÔÔÔÔ¥Ô«Ô±ÔÅÔÝÔáÔãÔçÔõÔùÔÕ ÕÕÕ#Õ1Õ5Õ7ÕIÕYÕ_ÕeÕgÕwÕÕÕÕµÕ¹ÕÁÕÇÕßÕïÕõÕûÕÖÖ-Ö1ÖCÖUÖ]ÖaÖ{Ö ÖÖÖ¥Ö¯Ö½ÖÃÖÇÖÙÖáÖíÖ ××××!×'×?×E×M×W×k×{×סק×ױ׳׽×Ë×Ñ×Û×ûר#Ø%Ø)Ø+Ø/Ø7ØMØUØgØsØØØ¡ØØ¿ØÍØ×ØéØõØûØÙ%Ù3Ù9ÙCÙEÙOÙQÙWÙmÙoÙsÙyÙÙÙÙ٥٩ٵÙÓÙëÙñÙ÷ÙÿÙÚ ÚÚÚÚÚ#Ú)Ú?ÚQÚYÚ]Ú_ÚqÚwÚ{Ú}ÚÚÚ³Ú½ÚÃÚÉÚçÚéÚõÚÛÛÛ#Û%Û1Û;ÛCÛUÛgÛkÛsÛ ÛÛÛÛ¯Û¹ÛÇÛËÛÍÛëÛ÷Û Ü'Ü1Ü9Ü?ÜIÜQÜaÜoÜuÜ{Ü ÜÜÜÜܩܷܵܽÜÇÜÏÜÓÜÕÜßÜùÜÝÝÝ#Ý5Ý9ÝSÝWÝ_ÝiÝoÝ}ÝÝÝݡݫݿÝÅÝËÝÏÝçÝéÝíÝõÝûÝÞÞ)Þ;Þ=ÞAÞMÞOÞYÞ[ÞaÞmÞwÞ}ÞÞÞÞ¡Þ§ÞÍÞÑÞ×ÞãÞñÞõÞß ßßß+ß3ß7ß=ßKßUß[ßgßißsß ßßߣ߫ߵ߷ßÃßÇßÕßñßóßàààà'à-à5àEàSàqà{àààà·à¹àÕà×àãàóàùàá%á)á1á5áCáOáYáaámáqáwááááááµá»á¿áÁáËáÑáåáïá÷áýáââ+â-â=âCâWâ[âuâyâââ«â¯â»âÁâÉâÍâÓâÙâóâýâÿâã#ã'ã)ã9ã;ãMãQãWã_ãcãiãuãwã}ãããÅãÉãÑãáãûãÿãääää#ä+ä1ä;äGäIäSäUämäqää©ä¯äµäÇäÍäÓäéäëäõäå!å%å7å?åEåKåWågåmåuå ååå£å¥åÏå æææææ!æ)æ9æ?æSæWæcæoæuææææææ«ææ·æ½æÅæËæÕæãæéæïæóæç ççç/ç=çGçIçSçUçaçgçkççççÅçÍç×çÝçßçéçñçûçèèèèè1è3è7è=èKèOèQèièuèyèè¥è©è¯è½èÛèáèåèëèíèééééé-é3é;éKéQé_écéié{éééé¡é¹é×éçéïéêê/ê5êCêMê_êmêqê}ê êêê³ê¹ê»êÅêÇêËêßêåêëêõêëë ë1ë9ë?ë[ëaëcëoëë ëë«ë±ë·ëÁëÕëßëíëýëìì!ì)ìMìQì]ìiìoì{ìì¹ì¿ìÃìÉìÏì×ìÝìçìéìóìõìííí/í7í=íAíUíYí[íeíkíyííí»íÅí×íÙíãíåíñíõí÷íûí îîî!îIîOîcîgîsî{îî£î«îÁîÉîÕîßîáîñîï'ï/ïEïMïcïkïqïïïïïï³ïÃïÅïÛïáïéïðððð+ð/ð5ðCðGðOðgðkðqðwðyðð£ð©ðð»ð¿ðÅðËðÓðÙðãðéðñð÷ðñññ!ñ7ñ=ñUñuñ{ñññ¥ñ¯ñ·ñÕñçñíñýñ òòòò#ò'ò3ò;òAòWò_òeòiòwòòò§ò±ò³ò¹ò½ò¿òÛòíòïòùòÿòóóóAóYó[ó_ógósówóóó¯óÁóÑó×óûóô ô ôô!ô%ô+ôEôKôUôcôuôô ôôô£ô©ô¯ô½ôÃôÛôßôíôõõõ!õ)õ5õGõQõcõkõõõõõ±õ·õÉõÏõÑõÛõùõûõööö ö5ö7öSö[öaögöyööööööËöÝößöëö ÷÷-÷1÷C÷O÷Q÷U÷c÷i÷s÷y÷÷÷÷÷÷¥÷±÷»÷½÷Ï÷Ó÷ç÷ë÷ñ÷ÿ÷øø!ø'ø-ø5øGøYøcøeøoøqøwø{øøøø¡ø«ø³ø·øÉøËøÑø×øÝøçøïøùøÿøùù%ù1ù7ù;ùAùOù_ùaùmùqùwùù£ù©ù¹ùÍùéùýùú úú!ú%ú?úCúQú[úmú{úúúú«ú»ú½úÙúßúçúíúûûû-û/û?ûGûMûuû}ûûû±û·ûÃûÅûãûéûóûü)ü7üAüCüOüYüaüeümüsüyüüüü§üµüÅüÍüëüûü ýýý+ý1ýQýUýgýmýoý{ý ýýýý©ý·ýÉýåýëýóýþþ þþ'þ/þAþKþMþWþ_þcþiþuþ{þþþþþþ³þ½þ×þéþóþõþÿ ÿÿ+ÿ/ÿIÿMÿ[ÿeÿqÿÿ ÿÿÿÿ§ÿ©ÿÇÿÙÿïÿñÿ failure, see the Visual C++ documentation on asserts - unable to initialize heap - not enough space for lowio initialization - not enough space for stdio initialization - pure virtual function call - not enough space for _onexit/atexit table - unable to open console device - unexpected heap error - unexpected multithread lock error - not enough space for thread data abnormal program termination - not enough space for environment - not enough space for arguments - floating point not loaded Program: ?????¸?Ã?È?Ò?×? 99$9@9O9a9j99©9³9¼9Ø9û9::: :%:/:6:>:D:K:P:a:}:Á=ç=)>X>^>>¾>c?j?y??¢?®?¾?Å?Ì?Ò?ù? 3$3)383>3N3Y3k3~33333§3Ä3Ê3Õ3Ú3ã3è3ø3þ3B4è4Õ6à6è6û6777$7.74797?7O7X7r7777þ7¨8´8Ã8É8Ù899"9(90999B9È9Î9Ù9ß9û9:::+:1:9:H:::í:;;;§;^<k<z<Û<0==Ø>???¥? 88 848B8O8T8Z8µ8¼89I9,:E:z:::¨:¸:÷:G;Z;;¸;Å;ê;5<H<¿<Ì<ñ< = ==4>>>®>ø>@?W?i?q?w??Ê?ï? --- NEW FILE: ActiveLock2.dll --- MZ $ Sfs fá¬fÇf{¶fff³fÊff-£f<fPGfÄf5¢fÌffîHf¦¢fÝIf~b f[Ff¡ÿfŤfef5Ìfbf*¦fc³ fLÌf¼f * 0 ' / ProductLicense j êC:\WINDOWS\System32\msvbvm60.dll\3 *|JÑÝÈDà¿Ù¨ql*Dÿ¢¼@®rUNBTÆ ValidateValue È È Mèÿ¤ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¤ Mèÿ¨ Mèÿ¨ µ Mìÿ¨ Mìÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¤ Mèÿ¤ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ D$] QM Pp2I¸ QM Pp2I¸ Mìÿ¨ ÿ 3ÒI\$0T$3ÒÛD$1T$,3ÒÝ\$ÝD$Ü ÿX MÄÿ¨ Mèÿ¨ Mèÿ¨ Mèÿ¨ MExÿÿÿJMÜQÇ pÿÿÿ°h MÜÿ ÿ( d *¼ :@§'KýZ° <<<<"<(<.<4<:<@<F<L<R<X<^<d<j<p<v<|<<<<<< <¦<¬<²<¸<¾<Ä<Ê<Ð<Ö<Ü<â<è<î<ô<ú< ??? <<+<8<w<<¯<å<ó<þ<=;=Z===¥=Ã=Õ=î=ö=>>>6>>>G>n>v>>>>Ç>Ï>ã>î>ô>0?K????°?»?Ö?Ý?é?ò?ø? 0/0=0I0S0000¦0Ý0ü061C1a1j111ª1´1ç12D2O2U222Ä2Ì2Õ2í2û2#3?3G3p3¦3¯3Â3È3ä3í3 ;;+;8;w;;ç;<,<?<\<d<m<{<<<Ç<å<==$=*=8=G=V=\=b=p====¡=±=Ì=Ô=Ý=é=ô=>7>U>§>Å>'?E??µ? 88W8u88×8õ89(9g9 9Ô9Ü9í9::&:@:Q:[:v::::©:¶:÷:;W;u;Ç;å;'<E<<µ<÷<=0=;=w==×=õ=7>U>p>{>·>Õ>?5?w??°?»?÷? 3O33Ù34c4¨4í425w5¼56T66Ð677G7Y7x7~77¬7´7¼7Ë7ö78)8/8P8]8g8v8¡8±8Ô8Ú8û899!9u9{9©9®9Ã9Ì9ß9:À:¾;ó;U<a<<<Í<×<==L=v==½=È=>)>A>]>e>t>>>µ>¼>Ñ>Ý>ä>ê>ü>l?|?? >>5>L>>>¦>µ>À>É>à>ï>,?8???±?É?Ù?ò?÷? 55%5C5^5g555¬5Ç5ô5666$6:6F6P6^6g66§6Å6ü6*7=7H7S7\7o7777§7Î7888E8P8[8a88®8¼8Ä8é8ù899H9[9c9s99¤99Ê9â9ò9 :::G:\:e:j::::¤:Ù:ç:;9;m;;;;;¯;Ë;Ù;ä;ô;%<.<B<f<q<<¿<Í<Õ<ø<==6=F=N=_=|===»=æ=ó=>>>(>4>>>L>>>µ>Ø>á>? ?+?3?E?R??¥?Ë?Ô? 777G7e7|7¯7Á7Ð7Û7ä7é788O8[8 8µ8Ë8æ8ë8ü89$9+99¥9Ô9à9ò9::4:=:n:v::¡:ª:×:õ:;;';g; ;;±;»;Ä;÷;<7<<<G<<¥<¿<Ñ<Ú<=(=l=v= ===³=¹=>$>C>^>>>>>½>Æ>Ï> 7 7@7[7h77¸7 8(8.8i8w888¥8Ð8à8î8ü89,989b9r999¥9±9Ö9ä9ë90:E:^:l:z::::ö:ÿ:; ;";G;\;q;x;;;Ü;û;<9<d<<<<Ã<ë<õ<=*=7=X=r=z==´=Ð=Ù=> >)>U>p>y>©>Å>Î>ð>ù>???H?T?b?r??£?«?±?Æ?û? 333Q3b3i333µ3Ö3ñ34%444@4N4\4j4~4¥4³4Ð4æ4ö45!5`55£5Ã5666,6@6[6e66§6Å6Ì6ç6í6ó6ý677$7@7H7Q7h7777ª7ê7÷78 848@8Q8a8m8v88§8Å8ß8ò8 ;;*;:;K;[;k;x;§;Å;ô;þ;<<0<<<J<S<h<y<<<< |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:43:18
|
Update of /cvsroot/activelock/activelock In directory sc8-pr-cvs1:/tmp/cvs-serv28087 Added Files: License.txt Log Message: Inital Checkin After Restructure --- NEW FILE: License.txt --- activeLock Copyright 1998-2002 Nelson Ferraz Copyright 2003 The ActiveLock Software Group (ASG) All material is the property of the contributing authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: [o] Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. [o] Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Update of /cvsroot/activelock/activelock/src In directory sc8-pr-cvs1:/tmp/cvs-serv28087/src Added Files: .cvsignore ActiveLock.cls ActiveLock2.vbp ActiveLockEventNotifier.cls BlowFish.cls FileKeyStore.cls Globals.cls IActiveLock.cls IKeyStoreProvider.cls INIFile.cls ProductKeyGenerator.cls ProductLicense.cls RegistryKeyStore.cls modActiveLock.bas modBase64.bas modComputerName.bas modHDSerial.bas modMACAddress.bas modMd5.bas modRegistryAPIs.bas modSha1.bas modWinApi.bas modWindowsSerial.bas Log Message: Inital Checkin After Restructure --- NEW FILE: .cvsignore --- *.vbw *.lib *.exp --- NEW FILE: ActiveLock.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "ActiveLock" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This is an implementation of IActiveLock. It is not public-creatable, and so must only ' be accessed via ActiveLock.NewInstance() method. ' ' @author th...@us... ' @version 2.0.0 ' @date 20030616 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' ' @todo Implement IActiveLock_Release. Not sure what if anything needs to be ' done here. ' @todo Implement IActiveLock_Transfer. This is the functionality to transfer ' a license from one machine to another. '* /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' @history ' <pre> ' 07.07.03 - mcrute - Updated the header comments for this file. ' 07.28.03 - th2tran - Using RSA signature for license key. ' 07.28.03 - wizzardme2000 - Implemented lockComp, lockHD, and lockWindows ' 07.31.03 - th2tran - Perform checksum on ALCrypto.dll on Init() ' - ValidateKey() to bypass checking expiry if there's no expiration date. ' </pre> ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' Implements the IActiveLock interface. ' Implements IActiveLock Private mSoftwareName As String Private mSoftwareVer As String Private mSoftwareCode As String Private mLockTypes As ALLockTypes Private mLicType As ALLicType Private mKeyStore As IKeyStoreProvider Private mKeyStorePath As String Private MyNotifier As New ActiveLockEventNotifier Private MyGlobals As New Globals ' Registry hive used to store Active Lock settings. Private Const AL_REGISTRY_HIVE$ = "Software\ActiveLock Software Group\ActiveLock2" ' Transients Private mfInit As Boolean ' flag to indicate that ActiveLock has been initialized ''' ' IActiveLock Interface implementations '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Property Get IActiveLock_EventNotifier() As ActiveLockEventNotifier Set IActiveLock_EventNotifier = MyNotifier End Property Private Sub IActiveLock_Init(Arg1 As Variant, ParamArray OtherArgs() As Variant) ' Checksum ALCrypto.dll Const ALCRYPTO_MD5$ = "e30f9189d9feb4eb222386c7c294f45e" Dim strdata As String, strMD5 As String Call modActiveLock.ReadFile(App.path & "\ALCrypto.Dll", strdata) strMD5 = modMD5.Hash(strdata) ' use our own MD5 hashing routine instead of ALCrypto's md5_hash() function. If strMD5 <> ALCRYPTO_MD5 Then Err.Raise ActiveLockErrCodeConstants.alerrFileTampered, "IActiveLock_Acquire", "ALCrypto.dll has been tampered." End If mfInit = True End Sub Private Sub IActiveLock_Acquire() If mKeyStore Is Nothing Then Err.Raise ActiveLockErrCodeConstants.alerrKeyStoreInvalid, "IActiveLock_Acquire", "Key Store Provider hasn't been initialized yet." End If Dim Lic As ProductLicense Set Lic = mKeyStore.Retrieve(mSoftwareName) If Lic Is Nothing Then Err.Raise ActiveLockErrCodeConstants.alerrNoLicense, "IActiveLock_Acquire", "No valid license" End If ' Validate license ValidateLic Lic End Sub Private Property Get IActiveLock_RegisteredDate() As String Dim Lic As ProductLicense Set Lic = mKeyStore.Retrieve(mSoftwareName) If Lic Is Nothing Then Err.Raise ActiveLockErrCodeConstants.alerrNoLicense, "IActiveLock_RegisteredDate", "No license." End If ' Validate the License. ValidateLic Lic IActiveLock_RegisteredDate = Lic.RegisteredDate End Property '' ' Validate the License Key using RSA signature verification. ' License key contains the RSA signature of IActiveLock_LockCode. Private Sub ValidateKey(Lic As ProductLicense) ' make sure software code is set If mSoftwareCode = "" Then Err.Raise ActiveLockErrCodeConstants.alerrNotInitialized, "ActiveLock2", "Software Code has not been set." End If Dim Key As RSAKey Dim strPubKey As String strPubKey = mSoftwareCode Dim strSig As String Dim strLic As String strLic = IActiveLock_LockCode(Lic) ' decode the license key strSig = MyGlobals.Base64Decode(Lic.LicenseKey) ' validate the key Dim rc& rc = MyGlobals.RSAVerify(strPubKey, strLic, strSig) If rc <> 0 Then Err.Raise ActiveLockErrCodeConstants.alerrLicenseInvalid, "ActiveLock2", "License invalid." End If ' Check if license has not expired ' but don't do it if there's no expiration date If Lic.Expiration = "" Then Exit Sub Dim dtExp As Date dtExp = CDate(Lic.Expiration) If Now > dtExp Then Err.Raise ActiveLockErrCodeConstants.alerrLicenseExpired, "ActiveLock2", "License expired" End If End Sub '' ' Validate the entire license (including lastused, etc...) ' Private Sub ValidateLic(Lic As ProductLicense) ' make sure we're initialized. If Not mfInit Then Err.Raise ActiveLockErrCodeConstants.alerrNotInitialized, "ActiveLock2", "ActiveLock has not been initialized." End If ' validate license key first ValidateKey Lic Dim strEncrypted As String, strHash As String ' Validate last run date MyNotifier.Notify "ValidateValue", Lic.LastUsed, strEncrypted strHash = MyGlobals.MD5Hash(strEncrypted) If strHash <> Lic.Hash1 Then Err.Raise ActiveLockErrCodeConstants.alerrLicenseTampered, "ActiveLock2", "License may have been tampered." End If ' try to detect the user setting their system clock back If Now < CDate(Lic.LastUsed) Then ' TODO: Need to account for Daylight Savings Time Err.Raise ActiveLockErrCodeConstants.alerrClockChanged, "ActiveLock2", "License invalid. You have set your system clock backward!" End If UpdateLastUsed Lic mKeyStore.Store Lic End Sub '' ' Updates LastUsed property with current date stamp. ' Private Sub UpdateLastUsed(Lic As ProductLicense) ' Update license store with LastRunDate Dim strEncrypted As String Dim strLastUsed As String strLastUsed = Format(Now(), "YYYY/MM/DD HH:MM:SS") Lic.LastUsed = strLastUsed MyNotifier.Notify "ValidateValue", strLastUsed, strEncrypted Lic.Hash1 = MyGlobals.MD5Hash(strEncrypted) End Sub Private Property Get IActiveLock_ExpirationDate() As String Dim Lic As ProductLicense Set Lic = mKeyStore.Retrieve(mSoftwareName) If Lic Is Nothing Then Err.Raise ActiveLockErrCodeConstants.alerrNoLicense, "IActiveLock_ExpirationDate", "No license." End If ' Validate the License. ValidateLic Lic IActiveLock_ExpirationDate = Lic.Expiration End Property Private Sub IActiveLock_Release() ' TODO: Implement Me! End Sub Private Property Let IActiveLock_KeyStorePath(RHS As String) If Not mKeyStore Is Nothing Then mKeyStore.KeyStorePath = RHS End If mKeyStorePath = RHS End Property Private Property Let IActiveLock_KeyStoreType(RHS As LicStoreType) ' Instantiate Key Store Provider If RHS = alsFile Then Set mKeyStore = New FileKeyStoreProvider Else Set mKeyStore = New RegistryKeyStoreProvider End If ' Set Key Store Path in KeyStoreProvider If mKeyStorePath <> "" Then mKeyStore.KeyStorePath = mKeyStorePath End If End Property Private Property Let IActiveLock_LicenseType(RHS As ALLicType) mLicType = RHS End Property Private Property Get IActiveLock_LicenseType() As ALLicType IActiveLock_LicenseType = mLicType End Property Private Property Let IActiveLock_LockType(RHS As ALLockTypes) mLockTypes = RHS End Property Private Property Get IActiveLock_LockType() As ALLockTypes IActiveLock_LockType = mLockTypes End Property Private Sub IActiveLock_Register(Lic As ProductLicense) ' Validate that the license key. ' - registered user ' - expiry date Dim varResult As Variant ValidateKey Lic ' License was validated successfuly. Store it. If mKeyStore Is Nothing Then Err.Raise ActiveLockErrCodeConstants.alerrKeyStoreInvalid, "IActiveLock_Register", "Key Store Provider hasn't been initialized yet." End If ' ' obtain encrypted value for the RegisteredDate ' Lic.RegisteredDate = Format(Now(), "yyyy/mm/dd") ' Dim strEncrypted As String ' MyNotifier.Notify "ValidateValue", Lic.RegisteredDate, strEncrypted ' ' hash it ' Lic.Hash1 = modMD5.Hash(strEncrypted) ' Update last used date UpdateLastUsed Lic mKeyStore.Store Lic End Sub Private Function RandomNumber() As String ' Generates a random number On Error Resume Next Randomize RandomNumber = CStr(CLng(Rnd(1) * 2147483647)) End Function Private Property Let IActiveLock_SoftwareName(RHS As String) mSoftwareName = RHS End Property Private Property Get IActiveLock_SoftwareName() As String IActiveLock_SoftwareName = mSoftwareName End Property Private Function IActiveLock_LockCode(Optional Lic As ProductLicense = Nothing) As String Dim strLock As String If (mLockTypes And lockMAC) = lockMAC Then strLock = strLock & vbLf & modMACAddress.GetMACAddress() End If If mLockTypes And lockComp Then strLock = strLock & vbLf & modComputerName.GetComputerName() End If If mLockTypes And lockHD Then strLock = strLock & vbLf & modHDSerial.GetHDSerial() End If If mLockTypes And lockWindows Then strLock = strLock & vbLf & modWindowsSerial.GetWindowsSerial() End If If Left(strLock, 1) = vbLf Then strLock = Mid(strLock, 2) If Lic Is Nothing Then IActiveLock_LockCode = strLock Else IActiveLock_LockCode = Lic.ToString() & vbCrLf & strLock End If End Function Private Property Let IActiveLock_SoftwareVersion(RHS As String) mSoftwareVer = RHS End Property Private Property Get IActiveLock_SoftwareVersion() As String IActiveLock_SoftwareVersion = mSoftwareVer End Property Private Property Let IActiveLock_SoftwareCode(RHS As String) ' SoftwareCode is an RSA public key. This code will be used to verify license keys later on. mSoftwareCode = RHS End Property Private Function IActiveLock_Transfer(OtherSoftwareCode As String) As String ' TODO: Implement me! End Function Private Property Get IActiveLock_UsedDays() As Long Dim Lic As ProductLicense Set Lic = mKeyStore.Retrieve(mSoftwareName) ' validate the license ValidateLic Lic IActiveLock_UsedDays = CLng(DateDiff("d", Lic.RegisteredDate, Now)) End Property --- NEW FILE: ActiveLock2.vbp --- Type=OleDll Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#stdole2.tlb#OLE Automation Class=ActiveLock; ActiveLock.cls Class=IActiveLock; IActiveLock.cls Class=Globals; Globals.cls Class=IKeyStoreProvider; IKeyStoreProvider.cls Class=RegistryKeyStoreProvider; RegistryKeyStore.cls Class=ProductLicense; ProductLicense.cls Class=FileKeyStoreProvider; FileKeyStore.cls Module=modMACAddress; modMACAddress.bas Module=modMD5; modMd5.bas Module=modSHA1; modSha1.bas Module=modRegistryAPIs; modRegistryAPIs.bas Class=INIFile; INIFile.cls Module=modWinApi; modWinApi.bas Class=ActiveLockEventNotifier; ActiveLockEventNotifier.cls Module=modActiveLock; modActiveLock.bas Module=modBase64; modBase64.bas Module=modHDSerial; modHDSerial.bas Module=modWindowsSerial; modWindowsSerial.bas Module=modComputerName; modComputerName.bas Startup="(None)" HelpFile="" Title="ActiveLock2" ExeName32="ActiveLock2.dll" Command32="" Name="ActiveLock2" HelpContextID="0" CompatibleMode="2" CompatibleEXE32="ActiveLock2.dll" VersionCompatible32="1" MajorVer=2 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="The ActiveLock Software Group" VersionLegalCopyright="Copyright © 2003" VersionProductName="ActiveLock" CompilationType=0 OptimizationType=0 FavorPentiumPro(tm)=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=1 Unattended=0 Retained=0 ThreadPerObject=0 MaxNumberOfThreads=1 ThreadingModel=1 DebugStartupOption=0 [MS Transaction Server] AutoRefresh=1 --- NEW FILE: ActiveLockEventNotifier.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "ActiveLockEventNotifier" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = True '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This class handles ActiveLock COM event notifications to the interested observers. ' It is simply a wrapper containing pubic events. These events should ' really belong in IActiveLock, but since VB doesn't support inheritance ' of events, we have to do it this way. ' ' @author th...@us... ' @version 2.0.0 ' @date 20030720 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' [ ] TODO Item 1 ' [ ] TODO Item 2 ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' @history ' <pre> ' 07.20.03 - th2tran - Created ' 08.03.03 - th2tran - VBDox'ed this interface. ' </pre> ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' ProductLicense Property Value validation event allows the client application ' to return the encrypted version of a license property value. ' The client will receive this event, encrypt <code>Value</code> using its own encryption algorithm, ' and store the result in <code>Result</code> to be returned to ActiveLock. ' @param Value Property value. ' @param Result Encrypted value. Public Event ValidateValue(ByVal Value As String, Result As String) Friend Sub Notify(EventName As String, ParamArray Args()) If EventName = "ValidateValue" Then Dim Result As String Result = Args(1) RaiseEvent ValidateValue(CStr(Args(0)), Result) Args(1) = Result ' assign value back to the result End If End Sub --- NEW FILE: BlowFish.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "BlowFish" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True '* ActiveLock '* Copyright 2000 Fredrik Qvarfort '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* [...1462 lines suppressed...] m_sBox(3, 254) = &HC208E69F m_sBox(0, 255) = &HB74E6132 m_sBox(1, 255) = &HCE77E25B m_sBox(2, 255) = &H578FDFE3 m_sBox(3, 255) = &H3AC372E6 End Sub Public Function FileExist(Filename As String) As Boolean On Error GoTo NotExist Call FileLen(Filename) FileExist = True Exit Function NotExist: End Function --- NEW FILE: FileKeyStore.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "FileKeyStoreProvider" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This IKeyStoreProvider implementation is used to maintain the license keys on a file system. ' ' @author th...@us... ' @version 2.0.0 ' @date 20030616 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' ' [ ] IKeyStoreProvider_Store() - need to handle file locking for concurrent licensing. ' ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' ' 07.07.03 - mcrute - Updated the header comments for this file. ' ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' Implements IKeyStoreProvider interface. Implements IKeyStoreProvider Private mstrPath As String Private mIniFile As New INIFile ' License File Key names Private Const KEY_PRODKEY$ = "ProductKey" Private Const KEY_PRODNAME$ = "ProductName" Private Const KEY_PRODVER$ = "ProductVersion" Private Const KEY_LICENSEE$ = "Licensee" Private Const KEY_LICTYPE$ = "LicenseType" Private Const KEY_LICCLASS$ = "LicenseClass" Private Const KEY_LICKEY$ = "LicenseKey" Private Const KEY_EXP$ = "Expiration" Private Const KEY_REGISTERED_DATE$ = "RegisteredDate" Private Const KEY_LASTRUN_DATE$ = "LastUsed" ' date and time stamp Private Const KEY_LASTRUN_DATE_HASH$ = "Hash1" ' Hash of LastRunDate Private Property Let IKeyStoreProvider_KeyStorePath(RHS As String) If Not FileExists(RHS) Then Err.Raise alerrKeyStoreInvalid, , "License file '" & RHS & "' not found." End If mstrPath = RHS mIniFile.File = mstrPath End Property Private Sub IKeyStoreProvider_Store(Lic As ProductLicense) ' Write license properties to INI file section ' TODO: Perhaps we need to lock the file first.? mIniFile.Section = Lic.ProductName With Lic mIniFile.Values(KEY_PRODKEY) = .ProductKey mIniFile.Values(KEY_PRODVER) = .ProductVer mIniFile.Values(KEY_LICTYPE) = .LicenseType mIniFile.Values(KEY_LICCLASS) = .LicenseClass mIniFile.Values(KEY_LICENSEE) = .Licensee mIniFile.Values(KEY_LICKEY) = .LicenseKey mIniFile.Values(KEY_REGISTERED_DATE) = .RegisteredDate mIniFile.Values(KEY_LASTRUN_DATE) = .LastUsed mIniFile.Values(KEY_LASTRUN_DATE_HASH) = .Hash1 mIniFile.Values(KEY_EXP) = .Expiration End With End Sub '' ' Retrieves the registered license for the specified product. ' Private Function IKeyStoreProvider_Retrieve(ProductName As String) As ProductLicense Dim Lic As New ProductLicense ' Read license properties from INI file section ' TODO: Perhaps we need to lock the file first.? mIniFile.Section = ProductName With Lic .ProductName = ProductName .ProductVer = mIniFile.GetValue(KEY_PRODVER) .ProductKey = mIniFile.GetValue(KEY_PRODKEY) .Licensee = mIniFile.GetValue(KEY_LICENSEE) .LicenseType = mIniFile.GetValue(KEY_LICTYPE) .LicenseClass = mIniFile.GetValue(KEY_LICCLASS) .LicenseKey = mIniFile.GetValue(KEY_LICKEY) .Expiration = mIniFile.GetValue(KEY_EXP) .RegisteredDate = mIniFile.Values(KEY_REGISTERED_DATE) .LastUsed = mIniFile.Values(KEY_LASTRUN_DATE) .Hash1 = mIniFile.Values(KEY_LASTRUN_DATE_HASH) End With Set IKeyStoreProvider_Retrieve = Lic End Function '' ' Determines if a file exists. ' Private Function FileExists(FilePath As String) As Boolean If Len(FilePath) > 0 Then FileExists = (Len(Dir$(FilePath)) > 0) End If End Function --- NEW FILE: Globals.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "Globals" Attribute VB_GlobalNameSpace = True Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This class contains global object factory and utility methods. ' It is a global class so its routines in here can be accessed directly ' from the ActiveLock2 namespace. ' For example, the <code>NewInstance()</code> routine can be access via ' <code>ActiveLock2.NewInstance()</code>. ' ' @author th...@us... ' @version 2.0.0 ' @date 20030616 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' @todo GetLicTypeString() - Implement this fully. ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' @history ' <pre> ' 07.07.03 - mcrute - Updated the header comments for this file. ' 07.21.03 - th2tran - Added ActiveLockErrCodeConstants to contain ' a list of error code constants raised by ActiveLock. ' 07.28.03 - wizzardme2000 - Implemented lockComp, lockHD, and lockWindows ' 07.31.03 - th2tran - Added alerrFileTampered ' - CreateProductLicense() to ignore Expiration date ' for Permanent license type ' 08.03.03 - th2tran - VBDox'ed this class. ' </pre> ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' ActiveLock Error Codes ' ' @param alerrOK No error. Operation was successful. ' @param alerrNoLicense No license available. ' @param alerrLicenseInvalid License is invalid. ' @param alerrLicenseExpired License has expired. ' @param alerrLicenseTampered License has been tampered. ' @param alerrClockChanged System as been set back. ' @param alerrKeyStoreInvalid Key Store Provider has not been initialized yet. ' @param alerrFileTampered License file has been tampered. ' @param alerrNotInitialized ActiveLock has not been initialized yet. Public Enum ActiveLockErrCodeConstants alerrOK = 0 ' successful alerrNoLicense = &H80040001 ' vbObjectError (&H80040000) + 1 alerrLicenseInvalid = &H80040002 alerrLicenseExpired = &H80040003 alerrLicenseTampered = &H80040004 alerrClockChanged = &H80040005 alerrKeyStoreInvalid = &H80040010 alerrFileTampered = &H80040011 alerrNotInitialized = &H80040012 End Enum '' ' Returns a new instance of an object that implements IActiveLock interface. ' @param Args Optional list of parameters. ' Public Function NewInstance(Optional Args As Variant) As IActiveLock 'TODO: Add parameters as appropriate Dim NewInst As IActiveLock Set NewInst = New ActiveLock With NewInst ' Initialize properties ..... .Init Args End With Set NewInstance = NewInst End Function '' ' Instantiates a new ProductLicense object. ' If LicType is "Permanent", then Expiration date parameter will be ignored. ' ' @param Name Product/Software Name ' @param Code Product/Software Code ' @param Ver Product version ' @param Licclass License class ' @param LicType License type ' @param Licensee Registered party for which the license has been issued ' @param Expiration Expiration date ' @param LicKey License key ' @param RegisteredDate Date on which the product is registered ' @param Hash1 Hash-1 code ' Public Function CreateProductLicense(name As String, _ Code As String, _ Ver As String, _ LicClass As ActiveLock2.ALLockTypes, _ LicType As ActiveLock2.ALLicType, _ Licensee As String, _ Expiration As String, _ Optional LicKey As String, _ Optional RegisteredDate As String, _ Optional Hash1 As String _ ) As ProductLicense Dim NewLic As New ProductLicense With NewLic .ProductName = name .ProductKey = Code .ProductVer = Ver .LicenseClass = GetClassString(LicClass) .LicenseType = GetLicTypeString(LicType) .Licensee = Licensee ' ignore exipration date if license type is "permanent" If LicType <> allicPermanent Then .Expiration = Expiration End If If Not IsMissing(LicKey) Then .LicenseKey = LicKey End If If Not IsMissing(RegisteredDate) Then .RegisteredDate = RegisteredDate End If If Not IsMissing(Hash1) Then .Hash1 = Hash1 End If End With Set CreateProductLicense = NewLic End Function Private Function GetClassString(LockType As ActiveLock2.ALLockTypes) As String 'TODO: Decide the class numbers. ' lockMAC should probably be last, ' like it is in the enum. (IActivelock.cls) If LockType = lockMAC Then GetClassString = "Class1" ElseIf LockType = lockWindows Then GetClassString = "Class2" ElseIf LockType = lockComp Then GetClassString = "Class3" ElseIf LockType = lockHD Then GetClassString = "Class4" End If End Function '' ' Returns a string version of LicType ' ' @param LicType License Type ' Private Function GetLicTypeString(LicType As ALLicType) As String 'TODO: Implement this properly. GetLicTypeString = "Single" End Function '' ' Trim Null characters from the string. ' @param str String to be trimmed. ' Public Function TrimNulls(str As String) As String TrimNulls = modActiveLock.TrimNulls(str) End Function '' ' Computes an MD5 hash of the specified string. ' @param str String to be hashed. ' Public Function MD5Hash(str As String) As String MD5Hash = modMD5.Hash(str) End Function '' ' Base-64 encode the specified string. ' @param str String to be encoded ' Public Function Base64Encode(str As String) As String Base64Encode = modBase64.Base64_Encode(str) End Function '' ' Base-64 decode the string. ' @param strEncoded String to be decoded ' Public Function Base64Decode(strEncoded As String) As String Base64Decode = modBase64.Base64_Decode(strEncoded) End Function '' ' Performs RSA signing of strData using the specified key. ' @param strPub Public key blob ' @param strPriv Private key blob ' @param strData Data to be signed ' @return Signature string. ' Public Function RSASign(strPub As String, strPriv As String, strdata As String) As String Dim Key As RSAKey ' create the key from the key blobs modActiveLock.rsa_createkey strPub, Len(strPub), strPriv, Len(strPriv), Key ' sign the data using the created key Dim sLen& rsa_sign Key, strdata, Len(strdata), vbNullString, sLen Dim strSig As String: strSig = String(sLen, 0) modActiveLock.rsa_sign Key, strdata, Len(strdata), strSig, sLen ' throw away the key modActiveLock.rsa_freekey Key RSASign = strSig End Function '' ' Verifies an RSA signature. ' @param strPub Public key blob ' @param strData Data to be signed ' @param strSig Private key blob ' @return Zero if verification is successful; Non-zero otherwise. ' Public Function RSAVerify(strPub As String, strdata As String, strSig As String) As Long Dim Key As RSAKey Dim rc& ' create the key from the public key blob rsa_createkey strPub, Len(strPub), vbNullString, 0, Key ' validate the key rc = rsa_verifysig(Key, strSig, Len(strSig), strdata, Len(strdata)) ' de-allocate memory used by the key rsa_freekey Key RSAVerify = rc End Function --- NEW FILE: IActiveLock.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "IActiveLock" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = True '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This is the main interface into ActiveLock. ' The user program interacts with ActiveLock via this IActiveLock interface. ' Typically, the user program would obtain an instance of this interface via the ' <code>ActiveLock2.NewInstance()</code> accessor method. From there, initialization calls are taken ' place, and then various method such as <code>Register()</code>, <code>Acquire()</code>, etc..., can be used. ' ActiveLock also sends event notifications to to the user program whenever it needs the ' user program's help to perform some action, such as parameter validation. These events ' are sent via the ActiveLockEventNotifier object, which can be obtained from IActiveLock_Notifier() ' accessor method. ' <p> ' <b>Important!</b> It is also strongly recommended that a checksum on ActiveLock2.dll be performed ' prior to accessing and interacting with ActiveLock. See sample code below on how it is done. ' <p> The sample code fragments below illustrate of how this interface is used. Please note that the code shown is ' only for illustration purposes and is not meant to be a complete compilable program. You may have to add ' variable declarations and function definitions around the code fragments before you can compile it. ' <pre> ' Form1.frm: ' ... ' Private MyActiveLock As ActiveLock2.IActiveLock ' Private WithEvents ActiveLockEventSink As ActiveLockEventNotifier ' Private Const AL_CRC& = 308603 ' ActiveLock2.dll's CRC checksum to be used for validation '<br> ' '' This RSA private key will be used for data encryption and/or license key signing. ' Private Const PRIV_KEY$ = "AAAAgEPRFzhQEF7S91vt2K6kOcEdDDe5BfwNiEL30/+ozTFHc7cZctB8NIlS++ZR//D3AjSMqScjh7xUF/gwvUgGCjiExjj1DF/XWFWnPOCfF8UxYAizCLZ9fdqxb1FRpI5NoW0xxUmvxGjmxKwazIW4P4XVi/+i1Bvh2qQ6ri3whcsNAAAAQQCyWGsbJKO28H2QLYH+enb7ehzwBThqfAeke/Gv1Te95yIAWme71I9aCTTlLsmtIYSk9rNrp3sh9ItD2Re67SE7AAAAQQCAookH1nws1gS2XP9cZTPaZEmFLwuxlSVsLQ5RWmd9cuxpgw5y2gIskbL4c+4oBuj0IDwKtnMrZq7UfV9I5VfVAAAAQQCEnyAuO0ahXH3KhAboop9+tCmRzZInTrDYdMy23xf3PLCLd777dL/Y2Y+zmaH1VO03m6iOog7WLiN4dCL7m+Im" ' '' This RSA public key will be used as the product's software code. ' Private Const PUB_KEY$ = "AAAAB3NzaC1yc2EAAAABJQAAAIBZnXD4IKfrBH25ekwLWQMs5mJuNH7D7U99EKFIsVhKQv17GHxKWvxHv/FwWhI1Rmd8TCiqk4Wmk7H1rh6xdbIVBwDj+RSeiXs8mmQX4/XvaWZx9BIQr5wODWnQCH/tj6Y6In2Xjc2J3B7LSjD60cWDBY/u+z9cSheTHLyhb16zFw==" '<br> ' ... ' Private Sub Form_Load() ' On Error GoTo Hell ' ' Obtain an instance of AL ' Set MyActiveLock = ActiveLock2.NewInstance() ' ' Verify AL's authenticity ' ' modActiveLock.CRCCheckSumTypeLib() requires a public-creatable object to be passed in so that it can ' ' determine the Type Library DLL on which to perform the checksum. ' ' So can't use MyActiveLock object to authenticate since it is not a public creatable object. ' ' So we'll use ActiveLock2.Globals, which is just as good because they are in the same DLL. ' Dim crc As Long ' crc = modActiveLock.CRCCheckSumTypeLib(New ActiveLock2.Globals) ' Debug.Print "Hash: " & crc ' If crc <> AL_CRC Then ' MsgBox "ActiveLock2.dll has been corrupted. If you were running a real application, it should terminate at this point." ' End If '<br> ' ' Initialize the keystore. We use a File keystore in this case. ' MyActiveLock.KeyStoreType = alsFile ' MyActiveLock.KeyStorePath = App.path & "\al.lic" '<br> ' ' Obtain the EventNotifier so that we can receive notifications from AL. ' Set ActiveLockEventSink = MyActiveLock.EventNotifier '<br> ' ' Specify the name of the product that will be locked through AL. ' MyActiveLock.SoftwareName = "MyApp" '<br> ' ' Specify our product code. This is a RSA public key, which will be used later by ActiveLock to validate license signatures ' MyActiveLock.SoftwareCode = "AAAAB3NzaC1yc2EAAAABJQAAAIBZnXD4IKfrBH25ekwLWQMs5mJuNH7D7U99EKFIsVhKQv17GHxKWvxHv/FwWhI1Rmd8TCiqk4Wmk7H1rh6xdbIVBwDj+RSeiXs8mmQX4/XvaWZx9BIQr5wODWnQCH/tj6Y6In2Xjc2J3B7LSjD60cWDBY/u+z9cSheTHLyhb16zFw==" '<br> ' ' Specify product version ' MyActiveLock.SoftwareVersion = txtVersion '<br> ' ' Specify License Type ' MyActiveLock.LicenseType = allicTimeLocked '<br> ' ' Specify Lock Type ' MyActiveLock.LockType = lockHD '<br> ' ' Now initialize AL ' MyActiveLock.Init '<br> ' ' At this point, either AL has been initialized or an error would have already been raised ' ' if there were problems (such as the DLL has been tampered). '<br> ' ' Check registration status by calling Acquire() ' ' Note: Calling Acquire() may trigger ActiveLockEventNotifier_ValidateValue() event. ' ' So we must be prepared to handle that. ' MyActiveLock.Acquire '<br> ' ' By now, if the product is not registered, then an error whould have been raised, ' ' which means if we get to here, then we're registered. '<br> ' ' Just for fun, print out some registration status info ' Debug.Print "Used Days: " & MyActiveLock.UsedDays ' Debug.Print "Expiration Date: " & MyActiveLock.ExpirationDate ' Exit Sub ' Hell: ' MsgBox Err.Number & ": " & Err.Description ' ' End program ' End ' End Sub ' ... ' ... ' ' ' ' ActiveLock raises this event typically when it needs a value to be encrypted. ' ' We can use any kind of encryption we'd like here, as long as it's deterministic. ' ' i.e. there's a one-to-one correspondence between unencrypted value and encrypted value. ' ' NOTE: BlowFish is NOT an example of deterministic encryption so you can't use it here. ' Private Sub ActiveLockEventSink_ValidateValue(ByVal Value As String, Result As String) ' Result = Encrypt(Value) ' End Sub '<br> ' ' Encrypts a string. ' Private Function Encrypt(strData As String) As String ' Dim Key As RSAKey ' ' create the key from the key blobs ' modActiveLock.rsa_createkey PUB_KEY, Len(PUB_KEY), PRIV_KEY, Len(PRIV_KEY), Key '<br> ' ' sign the data using the created key ' Dim dLen& ' Dim strEnc As String * 255 ' strEnc = strData ' dLen = Len(strData) ' modActiveLock.rsa_encrypt 1, strEnc, dLen, Key '<br> ' ' done with the key - throw it away ' modActiveLock.rsa_freekey Key '<br> ' Dim strOut As String ' strOut = Left$(strEnc, dLen) ' Encrypt = strOut ' End Function ' </pre> ' ' <p>Generating registration request code from the user application. ' <pre> ' ' Generate Request code ' Dim strReq As String, strLock As String ' strLock = MyActiveLock.LockCode() ' ' Combine with user name ' strReq = strLock & vbLf & txtUser ' ' base-64 encode the request ' Dim strReq2 As String ' strReq2 = ActiveLock2.Base64Encode(strReq) ' ' strReq2 now contains the request code to be sent to the vendor for activation. ' </pre> ' ' <p>Key Generator functionality - generating license key for a request code. ' <pre> ' ' First, take request code and decode it. ' Dim strReq As String ' strReq = ActiveLock2.Base64Decode(txtReqCodeIn) ' txtReqCodeIn is a textbox containing the input from the user ' ' strReq now contains the {LockCode + vbLf + User} string ' Dim strLock$, strUser$ ' ' ' Get Lock and user from request code ' Dim Index% ' Index = InStr(1, strReq, vbLf) ' If Index <= 0 Then Exit Sub ' ' strLock = Left(strReq, Index - 1) ' strUser = Mid$(strReq, Index + 1) ' strUser = TrimNulls(strUser) ' ' ' Compute expiration date for a 1-year license ' Dim strExpire$ ' strExpire = Format$(Now + 365, "YYYY/MM/DD") ' ' ' registration date ' Dim strRegDate As String ' strRegDate = Format(Now(), "yyyy/mm/dd") ' Dim strEncrypted As String ' ' ' Use the same encryption routine as ActiveLockEventSink_ValidateValue() event to encrypt the key ' ActiveLockEventSink_ValidateValue strRegDate, strEncrypted ' ' ' hash it ' strEncrypted = ActiveLock2.MD5Hash(strEncrypted) ' ' Dim Lic As ProductLicense ' Set Lic = ActiveLock2.CreateProductLicense("MyApp", PUB_KEY, ' "1.0", MyActiveLock.LockType, MyActiveLock.LicenseType, strUser, strExpire, , strRegDate, strEncrypted) ' Dim strLic As String ' ' encrypt Product license using LockCode ' strLic = MyActiveLock.LockCode(Lic) ' ' Sign it ' Dim strSig As String ' strSig = ActiveLock2.RSASign(PUB_KEY, PRIV_KEY, strLic) ' ' Create liberation key. This will be a base-64 encoded string of the whole license. ' Dim strLicKey As String ' strLicKey = ActiveLock2.Base64Encode(strSig) ' ' update Lic with license key ' Lic.LicenseKey = strLicKey ' ' Serialize it into a formatted string ' Dim strLibKey As String ' Lic.Save strLibKey ' Debug.Print "This is your liberation key: " & strLibKey ' </pre> ' ' <p>Key Registration functionality - register using a liberation key. ' <pre> ' On Error GoTo ErrHandler ' ' Register this key ' Dim Lic As New ActiveLock2.ProductLicense ' ' txtLibKey contains the liberation key entered by the user. ' ' This key could have be sent via an email to the user or a program that automatically ' ' requests the key from a registration website. ' ' Load up the license txtLibKey. ' txtLibKey is a textbox containing the input from the user. ' Lic.Load txtLibKey ' MyActiveLock.Register Lic ' MsgBox "Registration successful!" ' Exit Sub 'ErrHandler: ' MsgBox Err.Number & ": " & Err.Description ' </pre> ' ' @author th...@us... ' @version 2.0.0 ' @date 20030616 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' @history ' <pre> ' 07.07.03 - mcrute - Updated the header comments for this file. ' 07.20.03 - th2tran - Added EventNotifier used for firing COM events. ' 08.03.03 - th2tran - VBDox'ed this interface. ' ' </pre> ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' License Types. Values are mutually exclusive. i.e. they cannot be OR'd together. ' ' @param allicNone Not licensed ' @param allicPeriodic License expires after X number of days ' @param allicPermanent License will never expire ' @param allicTimeLocked License expires on a particular date Public Enum ALLicType allicNone = 0 allicPeriodic = 1 allicPermanent = 2 allicTimeLocked = 3 End Enum '' ' License Lock Types. Values can be combined (OR'ed) together. ' ' @param lockNone No locking - not recommended ' @param lockWindows Lock to windows serial number ' @param lockComp Lock to computer name ' @param lockHD Lock to hard drive serial ' @param lockMAC Lock to network NIC address Public Enum ALLockTypes lockNone = 0 lockWindows = 1 lockComp = 2 lockHD = 4 lockMAC = 8 ' lockCustom = 16 ' lock to a custom string ' lockRandom = 32 ' lock to a random number End Enum '' ' License Flags. Values can be combined (OR'ed) together. ' ' @param alfSingle Single-user license ' @param alfMulti Multi-user license Public Enum LicFlags alfSingle = 0 alfMulti = 1 End Enum '' ' License Store Type specifies where to store license keys ' ' @param alsRegistry ' Store in Windows Registry ' @param alsFile ' Store in a license file Public Enum LicStoreType alsRegistry = 0 alsFile = 1 End Enum '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Interface Properties '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' ' Specifies the license type for this instance of ActiveLock. ' @param LicType License Type ' Public Property Let LicenseType(LicType As ALLicType) End Property '' ' Returns the License Type being used in this instance. ' Public Property Get LicenseType() As ALLicType End Property '' ' Specifies the lock type for this instance of ActiveLock. ' @param LockTypes Lock Types. ' Public Property Let LockType(LockTypes As ALLockTypes) End Property '' ' Returns the Lock Type being used in this instance. ' Public Property Get LockType() As ALLockTypes End Property '' ' Specifies the name of the product being locked. ' @param sName Software Name ' Public Property Let SoftwareName(sName As String) End Property '' ' Returns the Software Name being used in this instance. ' Public Property Get SoftwareName() As String End Property '' ' Specifies the software code (product code) ' @param sCode Software Code. Public Property Let SoftwareCode(sCode As String) End Property '' ' Specifies the version of the product being locked. ' @param sVer Version string e.g. "1.0" ' Public Property Let SoftwareVersion(sVer As String) End Property '' ' Returns the Software Version being used in this instance. ' Public Property Get SoftwareVersion() As String End Property '' ' Specifies the key store type. ' @param KeyStore Key Store Type. ' Public Property Let KeyStoreType(KeyStore As LicStoreType) End Property '' ' Specifies the key store path. ' @param Path The path to be used for the specified KeyStoreType. ' e.g. If <code>alsFile</code> is used for <code>KeyStoreType</code>, then Path specifies the path to the license file. ' If <code>alsRegistry</code> is used for <code>KeyStoreType</code>, the Path specifies the Registry hive where license information is stored. Public Property Let KeyStorePath(path As String) End Property '* '*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '* Interface Methods '*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' ' Computes a lock code corresponding to the specified Lock Types, License Class, etc... ' Optionally, if a product license is specified, then a lock string specific to that license is returned. ' @param Lic Product License for which to compute the lock code. Public Function LockCode(Optional Lic As ProductLicense = Nothing) As String End Function '' ' Registers the following product license. ' @param Lic Product License with which to register. Public Sub Register(Lic As ProductLicense) End Sub '' ' Transfers the current license to another computer. ' Returns the liberation key tailored for the other request code. ' @param RequestCode Request Code generated from the other computer. ' Public Function Transfer(RequestCode As String) As String End Function '' ' Performs special initialization before we start operating. Some of the routines, including <code>Acquire()</code> ' and <code>Register()</code> requires Init() to be called first. ' This routine accepts varying number of parameters. ' ' @param Arg1 First parameter to be passed to this routine. ' @param OtherArgs The remaining array of arguments to be passed into this routine. Public Sub Init(Arg1 As Variant, ParamArray OtherArgs() As Variant) End Sub '' ' Acquires a valid license token. ' If no valid license can be found, an appropriate error will be thrown, specifying the cause. ' Public Sub Acquire() End Sub '' ' Release the acquired token. ' Public Sub Release() End Sub '' ' Retrieves the event notifier. ' Client applications uses this Notifier to handle event notifications sent by ActiveLock, ' including license validation events. ' @see ActiveLockEventNotifier for more information. Public Property Get EventNotifier() As ActiveLockEventNotifier End Property '' ' Returns the number of days this product has been used since its registration. ' Public Property Get UsedDays() As Long End Property '' ' Returns the date on which the product was registered. ' Public Property Get RegisteredDate() As String End Property '' ' Returns the expiration date string. ' Public Property Get ExpirationDate() As String End Property --- NEW FILE: IKeyStoreProvider.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "IKeyStoreProvider" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False '* ActiveLock '* Copyright 1998-2002 Nelson Ferraz '* Copyright 2003 The ActiveLock Software Group (ASG) '* All material is the property of the contributing authors. '* '* Redistribution and use in source and binary forms, with or without '* modification, are permitted provided that the following conditions are '* met: '* '* [o] Redistributions of source code must retain the above copyright '* notice, this list of conditions and the following disclaimer. '* '* [o] Redistributions in binary form must reproduce the above '* copyright notice, this list of conditions and the following '* disclaimer in the documentation and/or other materials provided '* with the distribution. '* '* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS '* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT '* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR '* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT '* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, '* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT '* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, '* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY '* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT '* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE '* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. '* '* '' ' This is the interface for a class that facilitates storing and ' retrieving of product license keys. ' ' @author th...@us... ' @version 2.0.0 ' @date 20030616 ' '* /////////////////////////////////////////////////////////////////////// ' / MODULE TO DO LIST / ' /////////////////////////////////////////////////////////////////////// ' ' [ ] TO-DO Item 1 ' ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CHANGE LOG / ' /////////////////////////////////////////////////////////////////////// ' @history ' <pre> ' 07.07.03 - mcrute - Updated the header comments for this file. ' 08.03.03 - th2tran - VBDox'ed this class. ' </pre> ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit '' ' Specifies the path under which the keys are stored. ' Example: path to a license file, or path to the Windows Registry hive. ' @param Path Key store path. ' Public Property Let KeyStorePath(path As String) End Property '' ' Retrieves license info for the specified product name. ' @param ProductName Product name. ' @return ProductLicense object matching the specified product name. ' If no license found, then <code>Nothing</code> is returned. ' Public Function Retrieve(ProductName As String) As ProductLicense End Function '' ' Stores a license. ' @param Lic License to be stored. ' Public Sub Store(Lic As ProductLicense) End Sub --- NEW FILE: INIFile.cls --- VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "INIFile" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Attribute VB_Ext_KEY = "SavedWithClassBuilder" ,"Yes" Attribute VB_Ext_KEY = "Top_Level" ,"Yes" ' /////////////////////////////////////////////////////////////////////// ' / Filename: INIFile.cls / ' / Version: 1.0.0.1 / ' / Purpose: Stores and retrives product keys / ' / Klaus H. Probst [kp...@vb...] / ' / / ' / Date Created: ???? ??, ???? - KHP / ' / Date Last Modified: July 07, 2003 - MEC / ' / / ' / This software is released under the license detailed below and is / ' / subject to said license. Neither this header nor the licese below / ' / may be removed from this module. / ' /////////////////////////////////////////////////////////////////////// ' ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE DESCRIPTION / ' /////////////////////////////////////////////////////////////////////// ' ' An "object-oriented" approach to using Windows INI files, with some ' useful additions. ' ' ' /////////////////////////////////////////////////////////////////////// ' / SOFTWARE LICENSE / ' /////////////////////////////////////////////////////////////////////// ' ' If you intend to distribute the file(s) that make up this sample to ' any WWW site, online service, electronic bulletin board system (BBS), ' CD or any other electronic or physical media, you must notify me in ' advance to obtain my express permission. ' ' ' /////////////////////////////////////////////////////////////////////// ' / MODULE CODE BEGINS BELOW THIS LINE / ' /////////////////////////////////////////////////////////////////////// Option Explicit DefLng A-Z 'Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "Get... [truncated message content] |
From: Thanh H. T. <th...@sy...> - 2003-08-07 17:34:47
|
Mike, Need to discuss this at some point. I really don't like the way it's restructured. - Thanh. |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:26:54
|
Update of /cvsroot/activelock/activelock/binaries In directory sc8-pr-cvs1:/tmp/cvs-serv27240/binaries Log Message: Directory /cvsroot/activelock/activelock/binaries added to the repository |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:26:54
|
Update of /cvsroot/activelock/activelock/src In directory sc8-pr-cvs1:/tmp/cvs-serv27240/src Log Message: Directory /cvsroot/activelock/activelock/src added to the repository |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:26:35
|
Update of /cvsroot/activelock/activelock In directory sc8-pr-cvs1:/tmp/cvs-serv27196 Log Message: Status: Vendor Tag: tcvs-vendor Release Tags: tcvs-release No conflicts created by this import ***** Bogus filespec: - Imported sources |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:26:23
|
Update of /cvsroot/activelock/alcrypto In directory sc8-pr-cvs1:/tmp/cvs-serv27142 Log Message: Status: Vendor Tag: tcvs-vendor Release Tags: tcvs-release No conflicts created by this import ***** Bogus filespec: - Imported sources |
From: Michael E. C. <mc...@us...> - 2003-08-07 17:26:01
|
Update of /cvsroot/activelock/examples In directory sc8-pr-cvs1:/tmp/cvs-serv27057 Log Message: Status: Vendor Tag: tcvs-vendor Release Tags: tcvs-release No conflicts created by this import ***** Bogus filespec: - Imported sources |
From: SourceForge.net <no...@so...> - 2003-08-06 23:16:45
|
Task #83282 has been updated. Project: ActiveLock Subproject: ActiveLock 2.0 General Summary: ActiveLock Universal Generator (ALUGEN) Complete: 0% Status: Open Authority : th2tran Assigned to: nobody Description: Universal Key Generator allows the developer to generate/maintain product code and license keys for all of their products (not just one). More detailed specs to follow. Follow-Ups: ------------------------------------------------------- Date: 2003-08-06 23:16 By: th2tran Comment: Make that ALUGEN...sounds cooler. :-) ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=83282&group_id=70007&group_project_id=29689 |
From: SourceForge.net <no...@so...> - 2003-08-06 23:05:26
|
Task #83282 has been updated. Project: ActiveLock Subproject: ActiveLock 2.0 General Summary: ActiveLock Universal Key Generator (ALUKGEN) Complete: 0% Status: Open Authority : th2tran Assigned to: nobody Description: Universal Key Generator allows the developer to generate/maintain product code and license keys for all of their products (not just one). More detailed specs to follow. ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=83282&group_id=70007&group_project_id=29689 |
From: AJcompany A. <ajc...@ya...> - 2003-08-06 12:26:22
|
I'm not going to be here for the next few days (I'll be back sunday or monday), and I doubt I'll have a laptop (and even if I do, it's hard to check yahoo mail with a powerbook 1400c :) ) -AJ --------------------------------- Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software |
From: Thanh H. T. <th...@us...> - 2003-08-06 05:48:25
|
Update of /cvsroot/activelock/activelock2/src In directory sc8-pr-cvs1:/tmp/cvs-serv14257 Modified Files: IActiveLock.cls Log Message: Minor corrections to vbdox. Index: IActiveLock.cls =================================================================== RCS file: /cvsroot/activelock/activelock2/src/IActiveLock.cls,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- IActiveLock.cls 4 Aug 2003 12:37:08 -0000 1.10 +++ IActiveLock.cls 6 Aug 2003 05:48:23 -0000 1.11 @@ -65,9 +65,9 @@ ' Private WithEvents ActiveLockEventSink As ActiveLockEventNotifier ' Private Const AL_CRC& = 308603 ' ActiveLock2.dll's CRC checksum to be used for validation '<br> -' '' This RSA private key will be used for data encryption and/or license key signing. +' ' This RSA private key will be used for data encryption and/or license key signing. ' Private Const PRIV_KEY$ = "AAAAgEPRFzhQEF7S91vt2K6kOcEdDDe5BfwNiEL30/+ozTFHc7cZctB8NIlS++ZR//D3AjSMqScjh7xUF/gwvUgGCjiExjj1DF/XWFWnPOCfF8UxYAizCLZ9fdqxb1FRpI5NoW0xxUmvxGjmxKwazIW4P4XVi/+i1Bvh2qQ6ri3whcsNAAAAQQCyWGsbJKO28H2QLYH+enb7ehzwBThqfAeke/Gv1Te95yIAWme71I9aCTTlLsmtIYSk9rNrp3sh9ItD2Re67SE7AAAAQQCAookH1nws1gS2XP9cZTPaZEmFLwuxlSVsLQ5RWmd9cuxpgw5y2gIskbL4c+4oBuj0IDwKtnMrZq7UfV9I5VfVAAAAQQCEnyAuO0ahXH3KhAboop9+tCmRzZInTrDYdMy23xf3PLCLd777dL/Y2Y+zmaH1VO03m6iOog7WLiN4dCL7m+Im" -' '' This RSA public key will be used as the product's software code. +' ' This RSA public key will be used as the product's software code. ' Private Const PUB_KEY$ = "AAAAB3NzaC1yc2EAAAABJQAAAIBZnXD4IKfrBH25ekwLWQMs5mJuNH7D7U99EKFIsVhKQv17GHxKWvxHv/FwWhI1Rmd8TCiqk4Wmk7H1rh6xdbIVBwDj+RSeiXs8mmQX4/XvaWZx9BIQr5wODWnQCH/tj6Y6In2Xjc2J3B7LSjD60cWDBY/u+z9cSheTHLyhb16zFw==" '<br> ' ... |
From: Thanh H. T. <th...@us...> - 2003-08-06 03:52:51
|
Update of /cvsroot/activelock/activelock2/test In directory sc8-pr-cvs1:/tmp/cvs-serv416 Modified Files: modMain.bas Log Message: ActiveLock2.dll was recompiled, which means we needed to use new checksum. Index: modMain.bas =================================================================== RCS file: /cvsroot/activelock/activelock2/test/modMain.bas,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- modMain.bas 4 Aug 2003 13:48:05 -0000 1.10 +++ modMain.bas 6 Aug 2003 03:52:48 -0000 1.11 @@ -207,7 +207,6 @@ ' that you generate your own set of keys to use before deploying your app. Public Const PRIV_KEY$ = "AAAAgEPRFzhQEF7S91vt2K6kOcEdDDe5BfwNiEL30/+ozTFHc7cZctB8NIlS++ZR//D3AjSMqScjh7xUF/gwvUgGCjiExjj1DF/XWFWnPOCfF8UxYAizCLZ9fdqxb1FRpI5NoW0xxUmvxGjmxKwazIW4P4XVi/+i1Bvh2qQ6ri3whcsNAAAAQQCyWGsbJKO28H2QLYH+enb7ehzwBThqfAeke/Gv1Te95yIAWme71I9aCTTlLsmtIYSk9rNrp3sh9ItD2Re67SE7AAAAQQCAookH1nws1gS2XP9cZTPaZEmFLwuxlSVsLQ5RWmd9cuxpgw5y2gIskbL4c+4oBuj0IDwKtnMrZq7UfV9I5VfVAAAAQQCEnyAuO0ahXH3KhAboop9+tCmRzZInTrDYdMy23xf3PLCLd777dL/Y2Y+zmaH1VO03m6iOog7WLiN4dCL7m+Im" Public Const PUB_KEY$ = "AAAAB3NzaC1yc2EAAAABJQAAAIBZnXD4IKfrBH25ekwLWQMs5mJuNH7D7U99EKFIsVhKQv17GHxKWvxHv/FwWhI1Rmd8TCiqk4Wmk7H1rh6xdbIVBwDj+RSeiXs8mmQX4/XvaWZx9BIQr5wODWnQCH/tj6Y6In2Xjc2J3B7LSjD60cWDBY/u+z9cSheTHLyhb16zFw==" -Private Const AL_CRC& = 129614 ' ActiveLock2.dll's CRC checksum to be used for comparison Public Function Encrypt(strData As String) As String Dim Key As RSAKey ' create the key from the key blobs @@ -237,6 +236,7 @@ ' Returns the checksum. ' Public Function VerifyActiveLockdll(obj As IUnknown) As String + Const AL_CRC& = 175936 ' ActiveLock2.dll's CRC checksum to be used for comparison Dim crc As Long crc = modActiveLock.CRCCheckSumTypeLib(obj) Debug.Print "Hash: " & crc |
From: Thanh H. T. <th...@us...> - 2003-08-06 03:51:52
|
Update of /cvsroot/activelock/activelock2/src In directory sc8-pr-cvs1:/tmp/cvs-serv32746 Modified Files: ActiveLock.cls ActiveLock2.dll Log Message: ALCrypto.dll was recompiled, which means new checksum. Index: ActiveLock.cls =================================================================== RCS file: /cvsroot/activelock/activelock2/src/ActiveLock.cls,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- ActiveLock.cls 4 Aug 2003 01:34:01 -0000 1.13 +++ ActiveLock.cls 6 Aug 2003 03:51:49 -0000 1.14 @@ -109,7 +109,7 @@ Private Sub IActiveLock_Init(Arg1 As Variant, ParamArray OtherArgs() As Variant) ' Checksum ALCrypto.dll - Const ALCRYPTO_MD5$ = "ac0dd6351905e6d688199146165170c4" + Const ALCRYPTO_MD5$ = "e30f9189d9feb4eb222386c7c294f45e" Dim strdata As String, strMD5 As String Call modActiveLock.ReadFile(App.path & "\ALCrypto.Dll", strdata) strMD5 = modMD5.Hash(strdata) ' use our own MD5 hashing routine instead of ALCrypto's md5_hash() function. Index: ActiveLock2.dll =================================================================== RCS file: /cvsroot/activelock/activelock2/src/ActiveLock2.dll,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 Binary files /tmp/cvsmGknII and /tmp/cvsgVsdWi differ |
From: Thanh H. T. <th...@us...> - 2003-08-06 03:40:40
|
Update of /cvsroot/activelock/activelock2/test In directory sc8-pr-cvs1:/tmp/cvs-serv31359 Modified Files: ALCrypto.dll Log Message: Rebuilt with the proper version info using Version.rc file. Index: ALCrypto.dll =================================================================== RCS file: /cvsroot/activelock/activelock2/test/ALCrypto.dll,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 Binary files /tmp/cvsWR6bg1 and /tmp/cvsaK5P0R differ |
From: Thanh H. T. <th...@us...> - 2003-08-06 03:39:56
|
Update of /cvsroot/activelock/activelock2/src In directory sc8-pr-cvs1:/tmp/cvs-serv31243 Modified Files: ALCrypto.dll Log Message: Rebuilt with the proper version info using Version.rc file. Index: ALCrypto.dll =================================================================== RCS file: /cvsroot/activelock/activelock2/src/ALCrypto.dll,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 Binary files /tmp/cvs2M7hqu and /tmp/cvsmuK7EQ differ |
From: Michael E. C. <mc...@so...> - 2003-08-05 16:38:07
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title></title> </head> <body text="#000000" bgcolor="#ffffff"> I will be there!<br> <br> -Mike<br> <br> Thanh Hai Tran wrote:<br> <blockquote type="cite" cite="mid003f01c35b66$626d54f0$750...@ka..."> <pre wrap="">Mike, I've asked vbclassicforever to help test our alpha release since he's proven to be quite good of a hacker. Here's his first problem report (don't think we need to post this on SF bug list since it really shouldn't be a problem....hand-slap on both of us :)) Anyway, let's reconvene another meeting tonight to sort this out. How's 11:30PM sound to you? Thanh. ----- Original Message ----- From: "Thanh Hai Tran" <a class="moz-txt-link-rfc2396E" href="mailto:th...@sy..."><th...@sy...></a> To: "Peter Young" <a class="moz-txt-link-rfc2396E" href="mailto:yo...@co..."><yo...@co...></a> Sent: Tuesday, August 05, 2003 11:22 AM Subject: Re: Got some time? </pre> <blockquote type="cite"> <pre wrap="">Hey Pete, Gee! Sure glad you look into this first (should've asked you before we do the release). I'll look into this tonight. ----- Original Message ----- From: "Peter Young" <a class="moz-txt-link-rfc2396E" href="mailto:yo...@co..."><yo...@co...></a> To: <a class="moz-txt-link-rfc2396E" href="mailto:th...@sy..."><th...@sy...></a> Sent: Tuesday, August 05, 2003 10:48 AM Subject: Re: Got some time? </pre> <blockquote type="cite"> <pre wrap="">Thanh, The samples won't run. There are multiple failures. The ActiveLock DLL Reference is broken - was there a Binary </pre> </blockquote> </blockquote> <pre wrap=""><!---->Compatability </pre> <blockquote type="cite"> <blockquote type="cite"> <pre wrap="">break? That would cause this symptom. When I fix the reference and run example1, I'm told that the </pre> </blockquote> </blockquote> <pre wrap=""><!---->ALCrypto.dll </pre> <blockquote type="cite"> <blockquote type="cite"> <pre wrap="">has been tampered with. When I run example2, I see more broken references: 1) AppConnector\3.1\lab\VBUnit.dll 2) src\ActiveLock2.vbp At this point, I can't do anything. Thx, Pete *********** REPLY SEPARATOR *********** On 8/5/2003 at 12:58 AM Thanh Hai Tran wrote: </pre> <blockquote type="cite"> <pre wrap="">Hey Pete, Long time no chat. Just dropping a line to see how you're doing, and whether you'd have </pre> </blockquote> </blockquote> </blockquote> <pre wrap=""><!---->time </pre> <blockquote type="cite"> <blockquote type="cite"> <blockquote type="cite"> <pre wrap="">help review/crack the new alpha release of ActiveLock 2.0. ;-) We just released it tonight. Mike Crute will probably make the </pre> </blockquote> <pre wrap="">announcement </pre> <blockquote type="cite"> <pre wrap="">tomorrow. You're the first outside the dev team to know. Anyway, let me know if you're interested. Best regards, Thanh. </pre> </blockquote> </blockquote> </blockquote> <pre wrap=""><!----> ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. <a class="moz-txt-link-freetext" href="http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01">http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01</a> _______________________________________________ Activelock-Development mailing list <a class="moz-txt-link-abbreviated" href="mailto:Act...@li...">Act...@li...</a> <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/activelock-development">https://lists.sourceforge.net/lists/listinfo/activelock-development</a> </pre> </blockquote> <br> <pre cols="72" class="moz-signature">-- **************************************** Michael E. Crute Senior Applications Developer SoftGroup Development Corporation <a class="moz-txt-link-abbreviated" href="mailto:mc...@so...">mc...@so...</a></pre> </body> </html> |
From: Thanh H. T. <th...@sy...> - 2003-08-05 15:29:43
|
Mike, I've asked vbclassicforever to help test our alpha release since he's proven to be quite good of a hacker. Here's his first problem report (don't think we need to post this on SF bug list since it really shouldn't be a problem....hand-slap on both of us :)) Anyway, let's reconvene another meeting tonight to sort this out. How's 11:30PM sound to you? Thanh. ----- Original Message ----- From: "Thanh Hai Tran" <th...@sy...> To: "Peter Young" <yo...@co...> Sent: Tuesday, August 05, 2003 11:22 AM Subject: Re: Got some time? > Hey Pete, > Gee! Sure glad you look into this first (should've asked you before we do > the release). I'll look into this tonight. > > ----- Original Message ----- > From: "Peter Young" <yo...@co...> > To: <th...@sy...> > Sent: Tuesday, August 05, 2003 10:48 AM > Subject: Re: Got some time? > > > > Thanh, > > > > The samples won't run. There are multiple failures. > > > > The ActiveLock DLL Reference is broken - was there a Binary Compatability > > break? That would cause this symptom. > > > > When I fix the reference and run example1, I'm told that the ALCrypto.dll > > has been tampered with. > > > > When I run example2, I see more broken references: > > 1) AppConnector\3.1\lab\VBUnit.dll > > 2) src\ActiveLock2.vbp > > > > At this point, I can't do anything. > > > > Thx, > > Pete > > > > *********** REPLY SEPARATOR *********** > > > > On 8/5/2003 at 12:58 AM Thanh Hai Tran wrote: > > > > >Hey Pete, > > >Long time no chat. > > >Just dropping a line to see how you're doing, and whether you'd have time > > >help review/crack the new alpha release of ActiveLock 2.0. ;-) > > >We just released it tonight. Mike Crute will probably make the > > announcement > > >tomorrow. You're the first outside the dev team to know. > > >Anyway, let me know if you're interested. > > > > > >Best regards, > > >Thanh. > > > > > > |
From: SourceForge.net <no...@so...> - 2003-08-05 14:25:49
|
Feature Requests item #763465, was opened at 2003-06-30 15:24 Message generated for change (Comment added) made by mcrute You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526388&aid=763465&group_id=70007 Category: Other Request Group: Next Major Version >Status: Closed Resolution: Accepted Priority: 9 Submitted By: Nobody/Anonymous (nobody) Assigned to: Thanh Hai Tran (th2tran) Summary: Trial Period Feature Initial Comment: Trial Period Feature with 1. a limited number of days starting from the initial date 2. a fixed date ---------------------------------------------------------------------- >Comment By: Michael E. Crute (mcrute) Date: 2003-08-05 09:25 Message: Logged In: YES user_id=564093 Closed this ticket because the request was completed. -Project Manager ---------------------------------------------------------------------- Comment By: Thanh Hai Tran (th2tran) Date: 2003-08-02 14:51 Message: Logged In: YES user_id=797792 Your request was completed an has been added to the release queue for the next available release of the software. -Development Team ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526388&aid=763465&group_id=70007 |
From: SourceForge.net <no...@so...> - 2003-08-05 14:24:51
|
Feature Requests item #757708, was opened at 2003-06-20 01:23 Message generated for change (Comment added) made by mcrute You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526388&aid=757708&group_id=70007 Category: Security Improvements Group: Whenever We Can >Status: Closed Resolution: Accepted Priority: 3 Submitted By: Thanh Hai Tran (th2tran) Assigned to: Nobody/Anonymous (nobody) Summary: Checksumming the DLL Initial Comment: Need to provide a convenient method for user to perform an (MD5) checksum on AL dll. This could be a matter of providing a .bas file for them to use. ---------------------------------------------------------------------- >Comment By: Michael E. Crute (mcrute) Date: 2003-08-05 09:24 Message: Logged In: YES user_id=564093 Closed this ticket because the request was completed. -Project Manager ---------------------------------------------------------------------- Comment By: Thanh Hai Tran (th2tran) Date: 2003-08-02 14:53 Message: Logged In: YES user_id=797792 Your request was completed an has been added to the release queue for the next available release of the software. -Development Team ---------------------------------------------------------------------- Comment By: Thanh Hai Tran (th2tran) Date: 2003-07-31 11:45 Message: Logged In: YES user_id=797792 This feature has been implemented and ready for AL 2.0.0 Alpha 1. For more details, see http://sourceforge.net/pm/task.php? func=detailtask&project_task_id=82242&group_id=70007&grou p_project_id=25539 ---------------------------------------------------------------------- Comment By: Andy Schmitz (ajcompany) Date: 2003-07-31 08:44 Message: Logged In: YES user_id=522263 Well, the .bas file idea would be nice (and easy, just call a function), but quite easy to jump over the if.then statement. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526388&aid=757708&group_id=70007 |
From: SourceForge.net <no...@so...> - 2003-08-05 14:22:34
|
Bugs item #690657, was opened at 2003-02-21 08:52 Message generated for change (Comment added) made by mcrute You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526385&aid=690657&group_id=70007 >Category: Coding Problem >Group: Management Team >Status: Closed >Resolution: Wont Fix Priority: 5 Submitted By: Nobody/Anonymous (nobody) >Assigned to: Michael E. Crute (mcrute) >Summary: Software Code Bug Initial Comment: I noticed that when I select the property SoftwareCode Generation = LockToWindowsSerial, it generates a empty string. I traced this in the VB Debugger. This is on Windows 2K platform. I think the registry key values being looked up may be wrong: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\Product Key HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\WindowsNT\CurrentVersion\ProductKey I think the second key should be: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Prod uctId -pe...@ya... ---------------------------------------------------------------------- >Comment By: Michael E. Crute (mcrute) Date: 2003-08-05 09:22 Message: Logged In: YES user_id=564093 This bug report was marked as closed because we are no longer actively fixing bugs in the 1.x line of developement. Please use version 2.0. -Project Manger ---------------------------------------------------------------------- Comment By: Chris Egan (ce03) Date: 2003-03-02 21:50 Message: Logged In: YES user_id=674748 There is another bug when retrieving the Windows serial number. The API call RegQueryValueExNULL to retrieve the length of the string gives the length of the C string - ie. it includes one extra character for the trailing null. This means the VB string should be "vValue = Left$(sValue, cch - 1)". This fixes the problem I found where the serial number/machine name/etc were not being appended to the software code string. ---------------------------------------------------------------------- Comment By: Chris Egan (ce03) Date: 2003-03-02 17:23 Message: Logged In: YES user_id=674748 Version 1.89 does check for the correct ProductId value. However the key is opened with KEY_ALL_ACCESS privileges. Under Win2K (and later?), this is only available to users with full Admin rights. A Standard or Power user cannot open the key correctly, and so returns an empty string. Since the key is only being checked, I have changed the rights to KEY_QUERY_VALUE, and it now works correctly for all types of users. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=526385&aid=690657&group_id=70007 |
From: Michael E. C. <mc...@so...> - 2003-08-05 14:18:42
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> <title></title> </head> <body text="#000000" bgcolor="#ffffff"> <small><span style="font-family: arial;">Hello Everyone...</span><br style="font-family: arial;"> <span style="font-family: arial;">Yesterday night the newest version of ActiveLock was released into alpha. ActiveLock 2.0 is the newest version of ActiveLock and presents some major feature and security improvements over its predecessor, ActiveLock 1.89. Full source code and compiled versions of ActiveLock 2.0-alpha1 as well as basic API documentation can be downloaded from the ActiveLock project website at </span><a href="http://sourceforge.net/project/showfiles.php?group_id=70007" style="font-family: arial;">http://sourceforge.net/project/showfiles.php?group_id=70007</a><span style="font-family: arial;">. Please take the time to have a look at the new release. You won't be sorry. This is the best release of ActiveLock since 1.0 and Alpha 1 only has a small portion of the features you can expect to see in the full release of ActiveLock later this year. So download it, try it out, and let us know what you think.</span><br style="font-family: arial;"> <br style="font-family: arial;"> <span style="font-family: arial;">-ActiveLock Project Release Team</span></small><br> <pre cols="72" class="moz-signature">-- **************************************** Michael E. Crute Project Manager ActiveLock Software Group </pre> </body> </html> |
From: SourceForge.net <no...@so...> - 2003-08-05 04:40:53
|
Task #82239 has been updated. Project: ActiveLock Subproject: ActiveLock 2.0-alpha1 Summary: Handle other LockTo Types Complete: 100% Status: Open Authority : mcrute Assigned to: wizzardme2000 Description: Code other LockTo types as specified by comments in Global.cls Follow-Ups: ------------------------------------------------------- Date: 2003-08-05 04:40 By: th2tran Comment: Done by wizzardme2000 ------------------------------------------------------- Date: 2003-08-02 02:39 By: mcrute Comment: Do we have a status or a precentage complete for this yet? ------------------------------------------------------- Date: 2003-07-28 17:31 By: th2tran Comment: Re-assigning to Dan. ------------------------------------------------------- Date: 2003-07-23 04:16 By: th2tran Comment: Implement the rest of LockTypes other than lockToMAC. See TODO list in Globals.cls and ActiveLock.cls ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=82239&group_id=70007&group_project_id=25539 |