networking
This commit is contained in:
BIN
external/steamworks/tools/ContentBuilder/builder/steamcmd.exe
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder/steamcmd.exe
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/crashhandler.so
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/crashhandler.so
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/libstdc++.so.6
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/libstdc++.so.6
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/steamcmd
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/steamcmd
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/steamerrorreporter
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_linux/linux32/steamerrorreporter
vendored
Normal file
Binary file not shown.
40
external/steamworks/tools/ContentBuilder/builder_linux/steamcmd.sh
vendored
Normal file
40
external/steamworks/tools/ContentBuilder/builder_linux/steamcmd.sh
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
|
||||
STEAMEXE=`basename "$0" .sh`
|
||||
|
||||
UNAME=`uname`
|
||||
if [ "$UNAME" == "Linux" ]; then
|
||||
PLATFORM=linux32
|
||||
export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
|
||||
else # if [ "$UNAME" == "Darwin" ]; then
|
||||
PLATFORM=osx32
|
||||
export DYLD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$DYLD_LIBRARY_PATH"
|
||||
fi
|
||||
|
||||
ulimit -n 2048
|
||||
|
||||
MAGIC_RESTART_EXITCODE=42
|
||||
|
||||
if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
|
||||
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
|
||||
|
||||
# Set the LD_PRELOAD varname in the debugger, and unset the global version.
|
||||
if [ "$LD_PRELOAD" ]; then
|
||||
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
|
||||
echo show env LD_PRELOAD >> "$ARGSFILE"
|
||||
unset LD_PRELOAD
|
||||
fi
|
||||
|
||||
$DEBUGGER -x "$ARGSFILE" "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
|
||||
rm "$ARGSFILE"
|
||||
else
|
||||
$DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
|
||||
fi
|
||||
|
||||
STATUS=$?
|
||||
|
||||
if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
|
||||
exec "$0" "$@"
|
||||
fi
|
||||
exit $STATUS
|
||||
BIN
external/steamworks/tools/ContentBuilder/builder_osx/crashhandler.dylib
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_osx/crashhandler.dylib
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/ContentBuilder/builder_osx/steamcmd
vendored
Normal file
BIN
external/steamworks/tools/ContentBuilder/builder_osx/steamcmd
vendored
Normal file
Binary file not shown.
45
external/steamworks/tools/ContentBuilder/builder_osx/steamcmd.sh
vendored
Normal file
45
external/steamworks/tools/ContentBuilder/builder_osx/steamcmd.sh
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
|
||||
STEAMCMD=`basename "$0" .sh`
|
||||
|
||||
UNAME=`uname`
|
||||
if [ "$UNAME" == "Linux" ]; then
|
||||
STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"
|
||||
PLATFORM="linux32"
|
||||
export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
|
||||
else # if [ "$UNAME" == "Darwin" ]; then
|
||||
STEAMEXE="${STEAMROOT}/${STEAMCMD}"
|
||||
if [ ! -x ${STEAMEXE} ]; then
|
||||
STEAMEXE="${STEAMROOT}/Steam.AppBundle/Steam/Contents/MacOS/${STEAMCMD}"
|
||||
fi
|
||||
export DYLD_LIBRARY_PATH="$STEAMROOT:$DYLD_LIBRARY_PATH"
|
||||
export DYLD_FRAMEWORK_PATH="$STEAMROOT:$DYLD_FRAMEWORK_PATH"
|
||||
fi
|
||||
|
||||
ulimit -n 2048
|
||||
|
||||
MAGIC_RESTART_EXITCODE=42
|
||||
|
||||
if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
|
||||
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
|
||||
|
||||
# Set the LD_PRELOAD varname in the debugger, and unset the global version.
|
||||
if [ "$LD_PRELOAD" ]; then
|
||||
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
|
||||
echo show env LD_PRELOAD >> "$ARGSFILE"
|
||||
unset LD_PRELOAD
|
||||
fi
|
||||
|
||||
$DEBUGGER -x "$ARGSFILE" "$STEAMEXE" "$@"
|
||||
rm "$ARGSFILE"
|
||||
else
|
||||
$DEBUGGER "$STEAMEXE" "$@"
|
||||
fi
|
||||
|
||||
STATUS=$?
|
||||
|
||||
if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
|
||||
exec "$0" "$@"
|
||||
fi
|
||||
exit $STATUS
|
||||
0
external/steamworks/tools/ContentBuilder/content/your game content lives here.txt
vendored
Normal file
0
external/steamworks/tools/ContentBuilder/content/your game content lives here.txt
vendored
Normal file
0
external/steamworks/tools/ContentBuilder/output/for build logs and intermediate files.txt
vendored
Normal file
0
external/steamworks/tools/ContentBuilder/output/for build logs and intermediate files.txt
vendored
Normal file
1
external/steamworks/tools/ContentBuilder/readme.txt
vendored
Normal file
1
external/steamworks/tools/ContentBuilder/readme.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
run_build.bat shows how to run a Steam content build for AppID 1000 which has one depot 1001.
|
||||
1
external/steamworks/tools/ContentBuilder/run_build.bat
vendored
Normal file
1
external/steamworks/tools/ContentBuilder/run_build.bat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
builder\steamcmd.exe +login account password +run_app_build ..\scripts\simple_app_build.vdf +quit
|
||||
17
external/steamworks/tools/ContentBuilder/scripts/app_build_1000.vdf
vendored
Normal file
17
external/steamworks/tools/ContentBuilder/scripts/app_build_1000.vdf
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"AppBuild"
|
||||
{
|
||||
"AppID" "1000" // Your AppID
|
||||
"Desc" "Your build description here" // internal description for this build
|
||||
"Preview" "1" // make this a preview build only, nothing is uploaded
|
||||
"Local" "..\..\ContentServer\htdocs" // put content on local content server instead of uploading to Steam
|
||||
"SetLive" "AlphaTest" // set this build live on beta branch AlphaTest
|
||||
"ContentRoot" "..\content\" // content root folder relative to this script file
|
||||
"BuildOutput" "D:\build_output\" // put build cache and log files on different drive for better performance
|
||||
"verbose" "0" // spew more build details in console
|
||||
"Depots"
|
||||
{
|
||||
// file mapping instructions for each depot are in separate script files
|
||||
"1001" "depot_build_1001.vdf"
|
||||
"1002" "depot_build_1002.vdf"
|
||||
}
|
||||
}
|
||||
20
external/steamworks/tools/ContentBuilder/scripts/depot_build_1001.vdf
vendored
Normal file
20
external/steamworks/tools/ContentBuilder/scripts/depot_build_1001.vdf
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
"DepotBuild"
|
||||
{
|
||||
// Set your assigned depot ID here
|
||||
"DepotID" "1001"
|
||||
|
||||
// include all files recursivley
|
||||
"FileMapping"
|
||||
{
|
||||
// This can be a full path, or a path relative to ContentRoot
|
||||
"LocalPath" "*"
|
||||
|
||||
// This is a path relative to the install folder of your game
|
||||
"DepotPath" "."
|
||||
|
||||
// If LocalPath contains wildcards, setting this means that all
|
||||
// matching files within subdirectories of LocalPath will also
|
||||
// be included.
|
||||
"Recursive" "1"
|
||||
}
|
||||
}
|
||||
40
external/steamworks/tools/ContentBuilder/scripts/depot_build_1002.vdf
vendored
Normal file
40
external/steamworks/tools/ContentBuilder/scripts/depot_build_1002.vdf
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"DepotBuild"
|
||||
{
|
||||
"DepotID" "1002"
|
||||
|
||||
"ContentRoot" "D:\content\depot1002" // override ContentRoot from app build script
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// all source files and folders in ".\bin" will be mapped into folder ".\executables" in depot
|
||||
"LocalPath" "bin\*"
|
||||
"DepotPath" "executables\"
|
||||
"Recursive" "1" // include all subfolders
|
||||
}
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// override audio files in \\audio with German versions
|
||||
"LocalPath" "localization\german\audio\*"
|
||||
"DepotPath" "audio\"
|
||||
}
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
// copy install script for german version into depot root folder
|
||||
"LocalPath" "localization\german\german_installscript.vdf"
|
||||
"DepotPath" "."
|
||||
}
|
||||
|
||||
"FileExclusion" "bin\server.exe" // exclude this file
|
||||
"FileExclusion" "*.pdb" // exclude all .PDB files everywhere
|
||||
"FileExclusion" "bin\tools*" // exclude all files under bin/tools/
|
||||
|
||||
"InstallScript" "localization\german\german_installscript.vdf"
|
||||
|
||||
"FileProperties"
|
||||
{
|
||||
"LocalPath" "bin\setup.cfg"
|
||||
"Attributes" "userconfig" // this file will be modified during runtime
|
||||
}
|
||||
}
|
||||
23
external/steamworks/tools/ContentBuilder/scripts/simple_app_build.vdf
vendored
Normal file
23
external/steamworks/tools/ContentBuilder/scripts/simple_app_build.vdf
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"AppBuild"
|
||||
{
|
||||
"AppID" "1000" // your AppID
|
||||
"Desc" "This is a simple build script" // internal description for this build
|
||||
"verbose" "0" // spew more build details in console
|
||||
"preview" "0" // make this a preview build only, nothing is uploaded
|
||||
|
||||
"ContentRoot" "..\content\" // root content folder, relative to location of this file
|
||||
"BuildOutput" "..\output\" // build output folder for build logs and build cache files
|
||||
|
||||
"Depots"
|
||||
{
|
||||
"1001" // your DepotID
|
||||
{
|
||||
"FileMapping"
|
||||
{
|
||||
"LocalPath" "*" // all files from contentroot folder
|
||||
"DepotPath" "." // mapped into the root of the depot
|
||||
"recursive" "1" // include all subfolders
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
external/steamworks/tools/ContentPrep.zip
vendored
Normal file
BIN
external/steamworks/tools/ContentPrep.zip
vendored
Normal file
Binary file not shown.
7
external/steamworks/tools/ContentServer/htdocs/index.html
vendored
Normal file
7
external/steamworks/tools/ContentServer/htdocs/index.html
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>
|
||||
<h1>Steam Local Content Server</h1>
|
||||
|
||||
To download Steam content from this local content server, add "@localcontentserver [thishostname]" to the steam_dev.cfg right next to Steam.exe <br>
|
||||
Browse local content <a href="depot">here</a> <br>
|
||||
For more information, see the SteamWorks SDK <a href="http://partner.steamgames.com">documentation</a> <br>
|
||||
</body></html>
|
||||
BIN
external/steamworks/tools/ContentServer/mongoose-3.1.exe
vendored
Normal file
BIN
external/steamworks/tools/ContentServer/mongoose-3.1.exe
vendored
Normal file
Binary file not shown.
16
external/steamworks/tools/ContentServer/mongoose-license.txt
vendored
Normal file
16
external/steamworks/tools/ContentServer/mongoose-license.txt
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
||||
Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
30
external/steamworks/tools/ContentServer/mongoose.conf
vendored
Normal file
30
external/steamworks/tools/ContentServer/mongoose.conf
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# Mongoose web server configuration file.
|
||||
# Lines starting with '#' and empty lines are ignored.
|
||||
# For detailed description of every option, visit
|
||||
# http://code.google.com/p/mongoose/wiki/MongooseManual
|
||||
|
||||
# cgi_pattern **.cgi$|**.pl$|**.php$
|
||||
# cgi_environment <value>
|
||||
# put_delete_passwords_file <value>
|
||||
# cgi_interpreter <value>
|
||||
# protect_uri <value>
|
||||
# authentication_domain mydomain.com
|
||||
# ssi_pattern **.shtml$|**.shtm$
|
||||
# access_log_file <value>
|
||||
# ssl_chain_file <value>
|
||||
# global_passwords_file <value>
|
||||
# index_files index.html,index.htm,index.cgi
|
||||
# access_control_list <value>
|
||||
# max_request_size 16384
|
||||
# extra_mime_types <value>
|
||||
# ssl_certificate <value>
|
||||
# num_threads 10
|
||||
# run_as_user <value>
|
||||
# url_rewrite_patterns <value>
|
||||
|
||||
document_root D:\ContentServer\htdocs
|
||||
listening_ports 80
|
||||
enable_directory_listing yes
|
||||
enable_keep_alive yes
|
||||
error_log_file error.log
|
||||
|
||||
BIN
external/steamworks/tools/SteamPipeGUI.zip
vendored
Normal file
BIN
external/steamworks/tools/SteamPipeGUI.zip
vendored
Normal file
Binary file not shown.
241
external/steamworks/tools/codesigning/build_steam_signatures_file.py
vendored
Normal file
241
external/steamworks/tools/codesigning/build_steam_signatures_file.py
vendored
Normal file
@@ -0,0 +1,241 @@
|
||||
import os
|
||||
import io
|
||||
import sys
|
||||
import re
|
||||
|
||||
# wrapper for print
|
||||
def printw( message ):
|
||||
print( message )
|
||||
|
||||
try:
|
||||
import Crypto
|
||||
from Crypto.Signature import PKCS1_v1_5
|
||||
from Crypto.Hash import SHA
|
||||
from Crypto.PublicKey import RSA
|
||||
except Exception as e:
|
||||
printw( "Missing required module: "+str(e) )
|
||||
sys.exit( -1 )
|
||||
|
||||
try:
|
||||
import zlib
|
||||
except Exception as e:
|
||||
printw( "Missing required module: "+str(e) )
|
||||
sys.exit( -1 )
|
||||
|
||||
try:
|
||||
import hashlib
|
||||
except Exception as e:
|
||||
printw( "Missing required module: "+str(e) )
|
||||
sys.exit( -1 )
|
||||
|
||||
try:
|
||||
import ctypes
|
||||
except Exception as e:
|
||||
printw( "Missing required module: "+str(e) )
|
||||
sys.exit( -1 )
|
||||
|
||||
|
||||
def usage():
|
||||
printw( "usage to verify a signaturefile:"+ sys.argv[0]+ " signaturefile publickeyfile" )
|
||||
printw( "usage to write a new signaturefile:"+ sys.argv[0]+ " signaturefile publickeyfile privatekeyfile newfilename" )
|
||||
printw( "" )
|
||||
|
||||
def readkeyfile( publickeyfilename ):
|
||||
# read the public key file.
|
||||
rawkey = open(publickeyfilename, mode='rb').read()
|
||||
# import as an RSA key
|
||||
key = RSA.importKey(rawkey)
|
||||
return key
|
||||
|
||||
def signmessage_add_digest( message, privatekeyfile ):
|
||||
key = RSA.importKey(open( privatekeyfile, mode='rb' ).read())
|
||||
h = SHA.new(message)
|
||||
signer = PKCS1_v1_5.new(key)
|
||||
signature = signer.sign(h)
|
||||
sighex = signature.encode("hex")
|
||||
return "DIGEST:"+sighex.upper()+"\r\n"
|
||||
|
||||
def checkdigest( signaturefilename, key ):
|
||||
with open(signaturefilename, mode='rb') as file:
|
||||
fileContent = file.read()
|
||||
|
||||
# find the start of the digest
|
||||
idxtodigest = fileContent.find('DIGEST:')
|
||||
if idxtodigest == 0:
|
||||
return 0
|
||||
|
||||
# the message is everything else
|
||||
message = fileContent[0:idxtodigest]
|
||||
|
||||
digestpart = fileContent[idxtodigest+7:]
|
||||
digestpart = digestpart.replace("\r\n","")
|
||||
signature = digestpart.decode("hex")
|
||||
|
||||
try:
|
||||
h = SHA.new(message)
|
||||
verifier = PKCS1_v1_5.new(key)
|
||||
if not verifier.verify(h, signature):
|
||||
return 0
|
||||
except Exception as e:
|
||||
printw( "could not verify signature: "+str(e) )
|
||||
return message
|
||||
|
||||
def crchex( crc32 ):
|
||||
crc32b = ctypes.c_uint32(crc32).value
|
||||
crc32hex = hex(crc32b).upper().replace("0X","").replace("L","")
|
||||
lenhex = len(crc32hex)
|
||||
# pad to 8 chars with leading 0s
|
||||
padding = 8 - lenhex
|
||||
while padding:
|
||||
crc32hex = "0"+crc32hex
|
||||
padding = padding - 1
|
||||
# byte swap
|
||||
crc32hex_reverse = crc32hex[6:8]+crc32hex[4:6]+crc32hex[2:4]+crc32hex[0:2]
|
||||
return crc32hex_reverse
|
||||
|
||||
def parsehashes( message, pathto ):
|
||||
# now verify all the file hashes
|
||||
newmessage = ""
|
||||
lines = message.split("\r\n")
|
||||
for line in lines:
|
||||
if len(line) == 0:
|
||||
break
|
||||
# parse the line, should be 5 parts
|
||||
# filename "~SHA1" sha1 ";CRC:" crc32
|
||||
parts=re.split(';|:|~',line)
|
||||
if len(parts) != 5:
|
||||
printw( "The file format is unexpected line:"+line )
|
||||
break
|
||||
if parts[1] != "SHA1" or parts[3] != "CRC":
|
||||
printw( "The file format is unexpected line:"+line )
|
||||
break
|
||||
|
||||
hashprovided = parts[2]
|
||||
crcprovided = parts[4]
|
||||
onefile = parts[0]
|
||||
onefile = onefile.replace("...\\","")
|
||||
onefilepath = os.path.join( pathto, onefile )
|
||||
try:
|
||||
with open(onefilepath, mode='rb') as file:
|
||||
targetcontent = file.read()
|
||||
except:
|
||||
printw( "could not open: "+onefilepath )
|
||||
continue
|
||||
|
||||
# compute sha1 of file
|
||||
mm = hashlib.sha1()
|
||||
mm.update(targetcontent)
|
||||
newhash = mm.hexdigest().upper()
|
||||
# compute crc32 of file
|
||||
crc32 = zlib.crc32(targetcontent)
|
||||
crc32hex = crchex(crc32)
|
||||
if ( newhash == hashprovided.upper() and
|
||||
crc32hex == crcprovided.upper() ):
|
||||
printw( "The hashes are correct for "+onefile )
|
||||
else:
|
||||
printw( "The hashes are different for "+onefile+" sha: "+newhash+" "+hashprovided.upper()+" CRC "+crc32hex+" "+crcprovided.upper() )
|
||||
# accumulate new hashes
|
||||
linenew = "...\\"+onefile+"~SHA1:"+newhash+";CRC:"+crc32hex+"\r\n"
|
||||
newmessage += linenew
|
||||
|
||||
return newmessage
|
||||
|
||||
def signatures_need_update( signaturefilename, publickeyfilename ):
|
||||
|
||||
if not os.path.exists( signaturefilename ):
|
||||
printw( "Signature file does not exist" )
|
||||
sys.stdout.flush()
|
||||
return False
|
||||
|
||||
pathto = os.path.split(signaturefilename)[0]
|
||||
|
||||
if not os.path.exists( publickeyfilename ):
|
||||
printw( "Public key file does not exist" )
|
||||
sys.stdout.flush()
|
||||
return False
|
||||
|
||||
key = readkeyfile( publickeyfilename )
|
||||
|
||||
message = checkdigest( signaturefilename, key )
|
||||
if len(message) == 0:
|
||||
printw( "failed to parse signature file " )
|
||||
return False
|
||||
|
||||
newmessage = parsehashes( message, pathto )
|
||||
if len(newmessage) == 0:
|
||||
printw( "failed to parse hashes in signature data " )
|
||||
return False
|
||||
return newmessage != message
|
||||
|
||||
|
||||
def write_new_signature_file( signaturefilename, publickeyfilename, privatekeyfilename, newsignaturefilename ):
|
||||
|
||||
if not os.path.exists( signaturefilename ):
|
||||
printw( "Signature file does not exist" )
|
||||
sys.stdout.flush()
|
||||
return -1
|
||||
|
||||
pathto = os.path.split(signaturefilename)[0]
|
||||
|
||||
if not os.path.exists( publickeyfilename ):
|
||||
printw( "Public key file does not exist" )
|
||||
sys.stdout.flush()
|
||||
return -2
|
||||
|
||||
if not os.path.exists( privatekeyfilename ):
|
||||
printw( "Private key file does not exist" )
|
||||
sys.stdout.flush()
|
||||
return -3
|
||||
|
||||
if os.path.exists( newsignaturefilename ) and not os.access( newsignaturefilename, os.W_OK ):
|
||||
printw( "new signatures file not writeable " )
|
||||
sys.stdout.flush()
|
||||
return -4
|
||||
|
||||
key = readkeyfile( publickeyfilename )
|
||||
|
||||
message = checkdigest( signaturefilename, key )
|
||||
if len(message) == 0:
|
||||
printw( "failed to parse old signature file " )
|
||||
return -5
|
||||
|
||||
newmessage = parsehashes( message, pathto )
|
||||
if len(newmessage) == 0:
|
||||
printw( "failed to create new signature data " )
|
||||
return -6
|
||||
|
||||
with open( newsignaturefilename, mode='wb') as file:
|
||||
file.write( newmessage )
|
||||
hexdigest = signmessage_add_digest( newmessage, privatekeyfilename )
|
||||
file.write( hexdigest )
|
||||
|
||||
printw( "new signatures file written successfully " )
|
||||
sys.stdout.flush()
|
||||
return 0
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
if len( sys.argv ) != 5 and len( sys.argv ) != 3:
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
# common args
|
||||
signaturefilename = sys.argv[1]
|
||||
publickeyfilename = sys.argv[2]
|
||||
|
||||
if len( sys.argv ) == 5:
|
||||
# only if writing a new file
|
||||
privatekeyfilename = sys.argv[3]
|
||||
newsignaturefilename = sys.argv[4]
|
||||
write_new_signature_file( signaturefilename, publickeyfilename, privatekeyfilename, newsignaturefilename )
|
||||
else:
|
||||
if signatures_need_update( signaturefilename, publickeyfilename ):
|
||||
printw( "Some signatures did not match" )
|
||||
else:
|
||||
printw( "All signatures matched" )
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
BIN
external/steamworks/tools/codesigning/steam_modulesigning.public
vendored
Normal file
BIN
external/steamworks/tools/codesigning/steam_modulesigning.public
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/goldmaster/disk_assets/481_depotcache_1.csd
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/481_depotcache_1.csd
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/goldmaster/disk_assets/481_depotcache_1.csm
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/481_depotcache_1.csm
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/goldmaster/disk_assets/Setup.exe
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/Setup.exe
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/goldmaster/disk_assets/SteamRetailInstaller.dmg
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/SteamRetailInstaller.dmg
vendored
Normal file
Binary file not shown.
BIN
external/steamworks/tools/goldmaster/disk_assets/SteamSetup.exe
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/SteamSetup.exe
vendored
Normal file
Binary file not shown.
4
external/steamworks/tools/goldmaster/disk_assets/autorun.inf
vendored
Normal file
4
external/steamworks/tools/goldmaster/disk_assets/autorun.inf
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
[autorun]
|
||||
OPEN=SETUP.EXE
|
||||
ICON=ICON.ICO
|
||||
|
||||
BIN
external/steamworks/tools/goldmaster/disk_assets/icon.ico
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/icon.ico
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
external/steamworks/tools/goldmaster/disk_assets/resources/click.wav
vendored
Normal file
BIN
external/steamworks/tools/goldmaster/disk_assets/resources/click.wav
vendored
Normal file
Binary file not shown.
26
external/steamworks/tools/goldmaster/disk_assets/resources/eula.rtf
vendored
Normal file
26
external/steamworks/tools/goldmaster/disk_assets/resources/eula.rtf
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\froman\fcharset0 Times;}{\f1\froman\fcharset0 Times New Roman;}{\f2\fswiss\fcharset0 Arial;}}
|
||||
{\colortbl ;\red0\green0\blue0;}
|
||||
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\nowidctlpar\fi720\qc\b\f0\fs20 YOU SHOULD CAREFULLY READ THE ENTIRE FOLLOWING LICENSE AGREEMENT BEFORE INSTALLING THIS SOFTWARE PROGRAM. THIS AGREEMENT CONTAINS IMPORTANT TERMS THAT AFFECT YOUR LEGAL RIGHTS. BY INSTALLING THE SOFTWARE PROGRAM, YOU AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, PLEASE DO NOT INSTALL THIS SOFTWARE PROGRAM.\par
|
||||
\par
|
||||
\pard\nowidctlpar\sa120\qj\tx360\tx720\b0 The software application(s) (the \ldblquote\ul Program\ulnone\rdblquote ), and any and all copies of the Program are the copyrighted work of Valve Corporation (\ldblquote\ul Valve\ulnone\rdblquote ) or its suppliers. All rights reserved, except as expressly stated herein. The Program is provided solely for installation by end users according to the terms of this License Agreement. All use of the Program is governed by the terms of the Steam Agreement as described below. Any use, reproduction or redistribution of the Program not in accordance with the terms of the License Agreement and the Steam Agreement is expressly prohibited.\par
|
||||
\pard\nowidctlpar\qc\ul\b\f1 LICENSE AGREEMENT\par
|
||||
\pard\nowidctlpar\par
|
||||
\pard\nowidctlpar\qj\tx360\ulnone\b0\tab 1. \ul Limited Installation License\ulnone . \par
|
||||
\par
|
||||
\pard\nowidctlpar\fi720\qj\tx360 A. Valve hereby grants, and by installing the Program you thereby accept, a limited, non-exclusive license and right to install one (1) copy of the Program on a computer. In order to use the Program you will have to obtain an account with the Steam service and accept the terms of the \f0 Steam subscriber agreement (\ldblquote\ul Steam Agreement\ulnone\rdblquote )\f1 . \f0 By installing the Program, you agree that your future use of the Program will be subject to the terms of the Steam Agreement. A copy of the Steam Agreement is available at \ul www.steampowered.com/agreement.\ulnone \f1 The Steam Agreement will be displayed to you when you obtain an account with the Steam service. The Program is licensed, not sold. Your license confers no title or ownership in the Program or copies thereof.\par
|
||||
\pard\nowidctlpar\qj\tx360\par
|
||||
\pard\nowidctlpar\fi720 B. \f0 You may not, in whole or in part: copy, photocopy, reproduce, translate, reverse engineer\cf1 (with the exception of specific circumstances where such act is permitted by law)\cf0 , derive source code, modify, disassemble, decompile, or create derivative works based on the Program; remove any proprietary notices or labels on the Program; or attempt in any manner to circumvent any security measures designed to control access to the Program. The Program is licensed to you as a single product. Its component parts may not be separated for use on more than one computer. You may not sell, grant a security interest in or transfer reproductions of the Program to other parties in any way, nor to rent, lease or license the Program to others without the prior written consent of Valve.\f1\par
|
||||
\pard\nowidctlpar\sa120\qj\tx360\tx720\f0\tab\par
|
||||
\tab 2. \ul Ownership\ulnone . All title, ownership rights and intellectual property rights in and to the Program and any and all copies thereof (including but not limited to any titles, computer code, themes, objects, characters, character names, stories, dialog, catch phrases, locations, concepts, artwork, animations, sounds, musical compositions, audio-visual effects, methods of operation, moral rights, any related documentation, and \ldblquote applets\rdblquote incorporated into the Program) are owned by Valve or its licensors. The Program is protected by the copyright laws of the United States, international copyright treaties and conventions and other laws. All rights are reserved. The Program contains certain licensed materials and Valve\rquote s licensors may protect their rights in the event of any violation of this Agreement.\par
|
||||
\tab 3. \ul Termination\ulnone . This License Agreement is effective until terminated. You may terminate the License Agreement at any time by destroying the Program. Valve may, at its discretion, terminate this License Agreement in the event that you fail to comply with the terms and conditions contained herein. This License Agreement shall automatically terminate in the event that you fail to comply with the terms and conditions contained herein. In such event, you must immediately destroy the Program. The provisions of Sections 2, 3, and 5-8 will survive any termination of the Agreement. \par
|
||||
\tab 4. \ul Export Controls\ulnone . The Program may not be re-exported, downloaded or otherwise exported into (or to a national or resident of) any country to which the U.S. has embargoed goods, or to anyone on the U.S. Treasury Department\rquote s list of Specially Designated Nationals or the U.S. Commerce Department\rquote s Table of Denial Orders. By installing the Program, you are agreeing to the foregoing and you are representing and warranting that you are not located in, under the control of, or a national or resident of any such country or on any such list.\par
|
||||
\pard\nowidctlpar\fi360\qj\tx8100\f1 5. \ul Limited Warranty\ulnone . The entire risk arising out of use or performance of the Program and any printed material(s) remains with the User.\f2 \f1 EXCEPT AS PROVIDED ABOVE, \caps The Program and ANY PRINTED MATERIAL(s) are provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability, fitness for a particular purpose, or noninfringement. \caps0 ANY WARRANTY AGAINST INFRINGEMENT THAT MAY BE PROVIDED IN SECTION 2-312(3) OF THE UNIFORM COMMERCIAL CODE AND/OR IN ANY OTHER COMPARABLE STATE STATUTE IS EXPRESSLY DISCLAIMED. Some states/jurisdictions do not allow the exclusion or limitation of implied warranties, so the above limitations may not apply to you.\par
|
||||
\pard\nowidctlpar\qj\tx360\tx720\f0\fs18\par
|
||||
\pard\nowidctlpar\qj\tx360\f1\tab 6. \ul\fs20 Limitation of Liability\ulnone . VALVE, ITS SUPPLIERS AND DISTRIBUTORS SHALL NOT BE LIABLE IN ANY WAY FOR LOSS OR DAMAGE OF ANY KIND RESULTING FROM THE USE OF THE PROGRAM INCLUDING, BUT NOT LIMITED TO, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES. ANY WARRANTY AGAINST INFRINGEMENT THAT MAY BE PROVIDED IN SECTION 2-312(3) OF THE UNIFORM COMMERCIAL CODE AND/OR IN ANY OTHER COMPARABLE STATE STATUTE IS EXPRESSLY DISCLAIMED. \caps Valve CANNOT AND WILL NOT BE RESPONSIBLE FOR ANY SOFTWARE OR HARDWARE FAILURES OR ANY OTHER EVENT WHICH MAY RESULT IN A LOSS OF DATA OR DISRUPTION OF SERVICE. \caps0 Some states/jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitations may not apply. \par
|
||||
\pard\nowidctlpar\qj\par
|
||||
\pard\nowidctlpar\sa120\qj\tx360\tab 7. \ul Equitable Remedies\ulnone . You hereby agree that Valve would be irreparably damaged if the terms of this License Agreement were not specifically enforced, and therefore you agree that Valve shall be entitled to appropriate equitable remedies with respect to breaches of this License Agreement, in addition to such other remedies as Valve may otherwise have available to it under applicable laws. In the event any litigation is brought by either party in connection with this License Agreement, the prevailing party in such litigation shall be entitled to recover from the other party all the costs, attorneys\rquote fees and other expenses incurred by such prevailing party in the litigation.\par
|
||||
\tab 8. \ul Miscellaneous\ulnone .\cf1 The terms of this paragraph do not apply to European Union consumers in the sense of Art. 5 of the Convention on the Law Applicable to Contractual Obligations opened for signature in Rome on 19 June 1980 (Rome Convention, 80/934/EEC) and national legislation based thereon.\cf0 You agree that this Agreement shall be deemed to have been made and executed in the State of Washington, and any dispute arising hereunder shall be resolved in accordance with the law of Washington. You agree that any claim asserted in any legal proceeding by you against Valve shall only be commenced and maintained in any state or federal court located in King County, Washington, and you agree to submit to the exclusive jurisdiction of those courts. In any dispute arising under this Agreement, the prevailing party will be entitled to attorneys' fees and expenses. This License Agreement may be amended, altered or modified only by an instrument in writing, specifying such amendment, alteration or modification, executed by both you and Valve. In the event that any provision of this License Agreement shall be held by a court or other tribunal of competent jurisdiction to be unenforceable, such provision will be enforced to the maximum extent permissible and the remaining portions of this License Agreement shall remain in full force and effect. This License Agreement and the Steam Agreement constitute and contain the entire agreement between the parties with respect to the subject matter hereof and supersede any prior oral or written agreements.\par
|
||||
You hereby acknowledge that you have read and understand the foregoing License Agreement and agree that the action of installing the Program is an acknowledgment of your agreement to be bound by the terms and conditions of the License Agreement contained herein.\par
|
||||
\par
|
||||
}
|
||||
| ||||