<% Class clsSHA1 ' ------------------------------------------------------------------------------ Private Function AndW(ByRef pBytWord1Ary, ByRef pBytWord2Ary) Dim lBytWordAry(3) Dim lLngIndex For lLngIndex = 0 To 3 lBytWordAry(lLngIndex) = CByte(pBytWord1Ary(lLngIndex) And pBytWord2Ary(lLngIndex)) Next AndW = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function OrW(ByRef pBytWord1Ary, ByRef pBytWord2Ary) Dim lBytWordAry(3) Dim lLngIndex For lLngIndex = 0 To 3 lBytWordAry(lLngIndex) = CByte(pBytWord1Ary(lLngIndex) Or pBytWord2Ary(lLngIndex)) Next OrW = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function XorW(ByRef pBytWord1Ary, ByRef pBytWord2Ary) Dim lBytWordAry(3) Dim lLngIndex For lLngIndex = 0 To 3 lBytWordAry(lLngIndex) = CByte(pBytWord1Ary(lLngIndex) Xor pBytWord2Ary(lLngIndex)) Next XorW = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function NotW(ByRef pBytWordAry) Dim lBytWordAry(3) Dim lLngIndex For lLngIndex = 0 To 3 lBytWordAry(lLngIndex) = Not CByte(pBytWordAry(lLngIndex)) Next NotW = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function AddW(ByRef pBytWord1Ary, ByRef pBytWord2Ary) Dim lLngIndex Dim lIntTotal Dim lBytWordAry(3) For lLngIndex = 3 To 0 Step -1 If lLngIndex = 3 Then lIntTotal = CInt(pBytWord1Ary(lLngIndex)) + pBytWord2Ary(lLngIndex) lBytWordAry(lLngIndex) = lIntTotal Mod 256 Else lIntTotal = CInt(pBytWord1Ary(lLngIndex)) + pBytWord2Ary(lLngIndex) + (lIntTotal \ 256) lBytWordAry(lLngIndex) = lIntTotal Mod 256 End If Next AddW = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function CircShiftLeftW(ByRef pBytWordAry, ByRef pLngShift) Dim lDbl1 Dim lDbl2 lDbl1 = WordToDouble(pBytWordAry) lDbl2 = lDbl1 lDbl1 = CDbl(lDbl1 * (2 ^ pLngShift)) lDbl2 = CDbl(lDbl2 / (2 ^ (32 - pLngShift))) CircShiftLeftW = OrW(DoubleToWord(lDbl1), DoubleToWord(lDbl2)) End Function ' ------------------------------------------------------------------------------ Private Function WordToHex(ByRef pBytWordAry) Dim lLngIndex For lLngIndex = 0 To 3 WordToHex = WordToHex & Right("0" & Hex(pBytWordAry(lLngIndex)), 2) Next End Function ' ------------------------------------------------------------------------------ Private Function HexToWord(ByRef pStrHex) HexToWord = DoubleToWord(CDbl("&h" & pStrHex)) ' needs "#" at end for VB? End Function ' ------------------------------------------------------------------------------ Private Function DoubleToWord(ByRef pDblValue) Dim lBytWordAry(3) lBytWordAry(0) = Int(DMod(pDblValue, 2 ^ 32) / (2 ^ 24)) lBytWordAry(1) = Int(DMod(pDblValue, 2 ^ 24) / (2 ^ 16)) lBytWordAry(2) = Int(DMod(pDblValue, 2 ^ 16) / (2 ^ 8)) lBytWordAry(3) = Int(DMod(pDblValue, 2 ^ 8)) DoubleToWord = lBytWordAry End Function ' ------------------------------------------------------------------------------ Private Function WordToDouble(ByRef pBytWordAry) WordToDouble = CDbl((pBytWordAry(0) * (2 ^ 24)) + (pBytWordAry(1) * (2 ^ 16)) + (pBytWordAry(2) * (2 ^ 8)) + pBytWordAry(3)) End Function ' ------------------------------------------------------------------------------ Private Function DMod(ByRef pDblValue, ByRef pDblDivisor) Dim lDblMod lDblMod = CDbl(CDbl(pDblValue) - (Int(CDbl(pDblValue) / CDbl(pDblDivisor)) * CDbl(pDblDivisor))) If lDblMod < 0 Then lDblMod = CDbl(lDblMod + pDblDivisor) End If DMod = lDblMod End Function ' ------------------------------------------------------------------------------ Private Function F( _ ByRef lIntT, _ ByRef pBytWordBAry, _ ByRef pBytWordCAry, _ ByRef pBytWordDAry _ ) If lIntT <= 19 Then F = OrW(AndW(pBytWordBAry, pBytWordCAry), AndW((NotW(pBytWordBAry)), pBytWordDAry)) ElseIf lIntT <= 39 Then F = XorW(XorW(pBytWordBAry, pBytWordCAry), pBytWordDAry) ElseIf lIntT <= 59 Then F = OrW(OrW(AndW(pBytWordBAry, pBytWordCAry), AndW(pBytWordBAry, pBytWordDAry)), AndW(pBytWordCAry, pBytWordDAry)) Else F = XorW(XorW(pBytWordBAry, pBytWordCAry), pBytWordDAry) End If End Function ' ------------------------------------------------------------------------------ Public Function SecureHash(ByVal pStrMessage) Dim lLngLen Dim lBytLenW Dim lStrPadMessage Dim lLngNumBlocks Dim lVarWordWAry(79) Dim lLngTempWordWAry Dim lStrBlockText Dim lStrWordText Dim lLngBlock Dim lIntT Dim lBytTempAry Dim lVarWordKAry(3) Dim lBytWordH0Ary Dim lBytWordH1Ary Dim lBytWordH2Ary Dim lBytWordH3Ary Dim lBytWordH4Ary Dim lBytWordAAry Dim lBytWordBAry Dim lBytWordCAry Dim lBytWordDAry Dim lBytWordEAry Dim lBytWordFAry lLngLen = Len(pStrMessage) lBytLenW = DoubleToWord(CDbl(lLngLen) * 8) lStrPadMessage = pStrMessage & Chr(128) & String((128 - (lLngLen Mod 64) - 9) Mod 64, Chr(0)) & _ String(4, Chr(0)) & Chr(lBytLenW(0)) & Chr(lBytLenW(1)) & Chr(lBytLenW(2)) & Chr(lBytLenW(3)) lLngNumBlocks = Len(lStrPadMessage) / 64 lVarWordKAry(0) = HexToWord("5A827999") lVarWordKAry(1) = HexToWord("6ED9EBA1") lVarWordKAry(2) = HexToWord("8F1BBCDC") lVarWordKAry(3) = HexToWord("CA62C1D6") lBytWordH0Ary = HexToWord("67452301") lBytWordH1Ary = HexToWord("EFCDAB89") lBytWordH2Ary = HexToWord("98BADCFE") lBytWordH3Ary = HexToWord("10325476") lBytWordH4Ary = HexToWord("C3D2E1F0") For lLngBlock = 0 To lLngNumBlocks - 1 lStrBlockText = Mid(lStrPadMessage, (lLngBlock * 64) + 1, 64) For lIntT = 0 To 15 lStrWordText = Mid(lStrBlockText, (lIntT * 4) + 1, 4) lVarWordWAry(lIntT) = Array(Asc(Mid(lStrWordText, 1, 1)), Asc(Mid(lStrWordText, 2, 1)), Asc(Mid(lStrWordText, 3, 1)), Asc(Mid(lStrWordText, 4, 1))) Next For lIntT = 16 To 79 lVarWordWAry(lIntT) = CircShiftLeftW(XorW(XorW(XorW(lVarWordWAry(lIntT - 3), lVarWordWAry(lIntT - 8)), lVarWordWAry(lIntT - 14)), lVarWordWAry(lIntT - 16)), 1) Next lBytWordAAry = lBytWordH0Ary lBytWordBAry = lBytWordH1Ary lBytWordCAry = lBytWordH2Ary lBytWordDAry = lBytWordH3Ary lBytWordEAry = lBytWordH4Ary For lIntT = 0 To 79 lBytWordFAry = F(lIntT, lBytWordBAry, _ lBytWordCAry, lBytWordDAry) lBytTempAry = AddW(AddW(AddW(AddW(CircShiftLeftW(lBytWordAAry, 5), lBytWordFAry), lBytWordEAry), lVarWordWAry(lIntT)), lVarWordKAry(lIntT \ 20)) lBytWordEAry = lBytWordDAry lBytWordDAry = lBytWordCAry lBytWordCAry = CircShiftLeftW(lBytWordBAry, 30) lBytWordBAry = lBytWordAAry lBytWordAAry = lBytTempAry Next lBytWordH0Ary = AddW(lBytWordH0Ary, lBytWordAAry) lBytWordH1Ary = AddW(lBytWordH1Ary, lBytWordBAry) lBytWordH2Ary = AddW(lBytWordH2Ary, lBytWordCAry) lBytWordH3Ary = AddW(lBytWordH3Ary, lBytWordDAry) lBytWordH4Ary = AddW(lBytWordH4Ary, lBytWordEAry) Next SecureHash = _ WordToHex(lBytWordH0Ary) & _ WordToHex(lBytWordH1Ary) & _ WordToHex(lBytWordH2Ary) & _ WordToHex(lBytWordH3Ary) & _ WordToHex(lBytWordH4Ary) End Function ' ------------------------------------------------------------------------------ End Class ' ------------------------------------------------------------------------------ URL_TPVVIRTUAL = "https://sis.sermepa.es/sis/realizarPago" Ds_Merchant_MerchantName = "PLAY DOC TUI" Ds_Merchant_MerchantCode = "322111162" Ds_Merchant_Terminal = 1 Ds_Merchant_Password = "5Q1608IR540618NA" Ds_Merchant_Currency = "978" Ds_Merchant_Amount = "1000" Ds_Merchant_Order = "" Ds_Merchant_TransactionType = "0" Ds_Merchant_MerchantURL = "http://www.sermepa.es" session.LCID=3082 dia = Right("00" & Day(Date()), 2) mes = Right("00" & Month(Date()), 2) hor = time() anyo = Right(Cstr(Year(Date)), 2) hor="#" & replace (hor,":","#") order= dia & mes & anyo & hor tborder= split(order,"#") for i=0 to 3 Ds_Merchant_Order= Ds_Merchant_Order & tborder(i) Next Dim ObjSHA1 Dim StrDigest Set ObjSHA1 = New clsSHA1 cadenaFirma = Ds_Merchant_Amount & Ds_Merchant_Order & Ds_Merchant_MerchantCode & Ds_Merchant_Currency & Ds_Merchant_TransactionType & Ds_Merchant_MerchantURL & Ds_Merchant_Password StrDigest = ObjSHA1.SecureHash(cadenaFirma) Set ObjSHA1 = Nothing session("idioma") = "gal" %> Support Play-Doc 2014 | International Documentary Festival
Menu

COLABORA CON PLAY-DOC !

10€ 20€ 30€ 40€ 50€
60€ 70€ 80€ 90€ 100€
Otra Cantidad: ,00€
Credit Card PayPal
>

Se desexas colaborar activamente con Play-Doc agora podes facelo mediante unha doazón económica a través de Play-Doc Support!. O teu apoio é moi importante para nós. Nestes tempos que corren calquera axuda é pouca, e a túa achega, por pequena que sexa, contribuirá a fortalecer o festival e continuar adiante con este proxecto.

Nós, como mostra do noso infinito agradecemento, darémosche algo a cambio.

Cunha achega mínima de 10 euros poderás lucir a nosa exclusiva chapiña de colaborador. A partires de 50 euros poderás obter unha acreditación especial que che permitirá acceder de maneira gratuíta a todas ás proxeccións e a todas ás actividades que programe ou festival.

Pero o que realmente conta é o teu apoio, que nos axudará sen dúbida a que poidamos seguir celebrando futuras edicións

Dende xa dámosche as grazas!