#41
Posted 12 June 2012 - 03:48 PM
On topic: I've just managed to add a clock to the top right corner of the OS status bar, using my new-found parallel API knowledge. Now you'll never need a traditional, inaccurate Minecraft clock again!
Also, the login system changes are done and now work perfectly! Also, Client side HyperPaw net code is partially done, and with a pseudo server/mainframe, the actual data transmission stuff is done. Now all that's left is to create a shiny OS wrapper and add database and request handling.
#42
Posted 12 June 2012 - 04:01 PM
Can't wait for the new stuff />
#43
Posted 12 June 2012 - 04:10 PM
max96at, on 12 June 2012 - 04:01 PM, said:
Can't wait for the new stuff />
I'm actually coding right now, but if you give me some way to privately contact you, I can throw potentially buggy development versions at you when I reach some kind of milestone />
Also, I'm glad you are looking forward to the new features />
EDIT: Noticed that your sig used to link to this thread, so thanks /> Don't think it does now though /> />
Edited by toxicwolf, 12 June 2012 - 04:11 PM.
#46
Posted 12 June 2012 - 08:48 PM
i know i screwed up the blur and the contrast of the "cracks" but whatever it only took 5 min
#48
#49
Posted 13 June 2012 - 06:05 AM
abc, on 13 June 2012 - 01:26 AM, said:
#50
Posted 13 June 2012 - 10:12 PM
first of all
tValidSides = {} tValidSides[1] = "top" tValidSides[2] = "bottom" tValidSides[3] = "front" tValidSides[4] = "back" tValidSides[5] = "left" tValidSides[6] = "right" function isPeripheralPresent(sSide) if peripheral.isPresent(sSide) then return true end return false end function isDrivePresent(sSide) if peripheral.getType(sSide) == "drive" then return true end return false end
sould be
local tValidSides = {"top","bottom","front","back","left","right"} function isPeripheralPresent(sSide) return peripheral.isPresent(sSide) end function isDrivePresent(sSide) return peripheral.getType(sSide) == "drive" endyour not using local either, that will interfere with programs that use those variables
#51
Posted 13 June 2012 - 11:22 PM
abc, on 13 June 2012 - 10:12 PM, said:
first of all
tValidSides = {} tValidSides[1] = "top" tValidSides[2] = "bottom" tValidSides[3] = "front" tValidSides[4] = "back" tValidSides[5] = "left" tValidSides[6] = "right" function isPeripheralPresent(sSide) if peripheral.isPresent(sSide) then return true end return false end function isDrivePresent(sSide) if peripheral.getType(sSide) == "drive" then return true end return false end
sould be
local tValidSides = {"top","bottom","front","back","left","right"} function isPeripheralPresent(sSide) return peripheral.isPresent(sSide) end function isDrivePresent(sSide) return peripheral.getType(sSide) == "drive" endyour not using local either, that will interfere with programs that use those variables
#52
Posted 14 June 2012 - 08:36 PM
function isPeripheralPresent(sSide) if peripheral.isPresent(sSide) then return true end return false endcan be
isPeripheralPresent = peripheral.isPresenti forgot how the function works, it loads the function and saves it as a var named by the function
so when you call "WPCI.isPeripheralPresent" it will return the function "peripheral.isPresent"
doing it like this saves memory as it dosent need to be loaded twice
#53
Posted 15 June 2012 - 10:38 AM
abc, on 14 June 2012 - 08:36 PM, said:
function isPeripheralPresent(sSide) if peripheral.isPresent(sSide) then return true end return false endcan be
isPeripheralPresent = peripheral.isPresenti forgot how the function works, it loads the function and saves it as a var named by the function
so when you call "WPCI.isPeripheralPresent" it will return the function "peripheral.isPresent"
doing it like this saves memory as it dosent need to be loaded twice
#54
Posted 15 June 2012 - 06:02 PM
toxicwolf, on 13 June 2012 - 06:05 AM, said:
#55
Posted 15 June 2012 - 06:43 PM
kazagistar, on 15 June 2012 - 06:02 PM, said:
toxicwolf, on 13 June 2012 - 06:05 AM, said:
To sum it up: The login system reads the passcode.dat file on the disk, decodes the passcode and then compares it to the user input.
#56
Posted 15 June 2012 - 07:16 PM
From 1.33 "/1/WOLF/APIS/WAPI" (sorry for copy/pasting):
function getPasscode() local sPrimaryDrive = getPrimaryDrive() local sMountPath = getMountPath(sPrimaryDrive) if disk.isPresent(sPrimaryDrive) and WFCI.exists("/" .. sMountPath .. "/WOLF/data/passcode.dat") then sPasscode = WFCI.readAllText("/" .. sMountPath .. "/WOLF/data/passcode.dat") return sPasscode else sPasscode = WFCI.readAllText("/WOLF/data/passcode.dat") return sPasscode end return nil end
Also, a quick search through all your APIS files reveals no "decrypt" at all. Am I missing something?
#57
Posted 15 June 2012 - 08:42 PM
kazagistar, on 15 June 2012 - 07:16 PM, said:
From 1.33 "/1/WOLF/APIS/WAPI" (sorry for copy/pasting):
snip
Also, a quick search through all your APIS files reveals no "decrypt" at all. Am I missing something?
#58
Posted 15 June 2012 - 10:01 PM
In any case, no hard feelings, but I am going to have to try and create a program to break your encryption. I MIGHT have a network I am designing that revolves around maintaining lists of trusted computers, and then only sending data directly to those computers.
#59
Posted 15 June 2012 - 10:16 PM
kazagistar, on 15 June 2012 - 10:01 PM, said:
In any case, no hard feelings, but I am going to have to try and create a program to break your encryption. I MIGHT have a network I am designing that revolves around maintaining lists of trusted computers, and then only sending data directly to those computers.
But at the end of the day, like you said, this whole project has just been for fun and started out as a way to learn Lua.
Also, my encryption functions can return a different encryption from the same input, because it randomises the effector value and bit shift upon encryption, then these two values are tagged onto the beginning of the encrypted data. The hash thing sounds almost inferior - it only encrypts data in one way, the same way every time, so if you know that, then you can revert a hash back into the data? But what would I know.
And, I am likely to change up the way I transfer messages to the way I wrote in the spoiler in the OP. I will be using rednet.send() now, since I rethought my methods, Meaning that you could probably only intercept and hack messages at certain points throughout the network, probably by impersonating a Relay (or editing a Relay to log all traffic through it when it passes it on). But, like I said, I don't know much about networking and stuff in real life, so any advice would be great!
#60
Posted 16 June 2012 - 01:46 AM
2) Asymmetric key is very useful because it verifies sender and receiver.
3) Unless we get a serious bitwise API, any kind of encryption won't be truly sound even if people can access the source code let alone if they can. Of course, I doubt we have TOO many expert cryptographers in our midst, so you should be mostly safe.
Basically, what you are doing should be OK, but make sure you use a number of methods, or it will be trivially breakable. If you just only use sends to computers which are "verified", and only accept sends into your network from computers that are secured and have the proper passphrase, then you should be fine. To resync a computer, you just need to provide it with the passphrase and list of valid computers. You can then have the network automatically validated it and store it as a valid computer as well. I recommend adding some way to change the passphrase on all the computers automatically, in case one of your computers gets stolen or hacked.
At least that is what I plan to do. Cant have people hacking into my turtle doom army.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users