%
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"
%>
Soporte | Benvidos a Play-Doc 2012 | International Documentary Festival
Colabora con Play-Doc
Fai oito anos que Play-Doc defende unha proposta cultural afastada do comercial e das correntes dominantes, ofrecendo un cinema ao noso parecer esencial e ao que é difícil acceder, xa que fóra dos festivais e na maioría dos casos non atopa espazos para a súa exhibición.
E defendémola enfrontándonos a todos os retos derivados de celebrar un evento destas características nunha localidade pequena. Pero esta foi e é a nosa aposta: mostrar un cinema agochado e periférico, e facelo desde a periferia, lonxe das grandes cidades, nos confíns fronteirizos tanto xeográficos como cinematográficos.
Pero se estamos aquí é grazas a ti, que fixeches que o éxito de público que caracteriza a este pequeno festival o faga tan grande. Xuntos chegamos a este punto do camiño. Con máis seguridade que nunca podemos afirmar que imos na boa dirección. Pero aínda queda camiño por percorrer.
Por iso e se o desexas, a través de Play-Doc Support podes participar dunha maneira moito máis directa e activa. Nestes tempos que corren toda axuda é pouca e a túa contribución pode ser decisiva.
Con achegas a partires de 10 euros poderás lucir a nosa chapiña de colaborador e gozar de 2 euros de desconto en cada un dos concertos. A partires de 50 euros poderás obter unha acreditación especial que che permitirá acceder de maneira gratuíta a todas as proxeccións, aos concertos e a todas as actividades que programe o festival.
Pero o que realmente conta é o teu apoio, que nos axudará sen dúbida a que poidamos seguir celebrando futuras edicións.