diff --git a/application/controller/socket.go b/application/controller/socket.go index 2c1d295..374ac1f 100644 --- a/application/controller/socket.go +++ b/application/controller/socket.go @@ -281,8 +281,8 @@ func (s socket) privateKey() string { return s.randomKey } -func (s socket) buildCipherKey() [24]byte { - key := [24]byte{} +func (s socket) buildCipherKey() [16]byte { + key := [16]byte{} now := strconv.FormatInt(time.Now().Unix()/100, 10) copy(key[:], getSocketAuthKey(now, s.privateKey())) diff --git a/application/controller/static_pages.go b/application/controller/static_pages.go index 17187f3..1a08d25 100644 --- a/application/controller/static_pages.go +++ b/application/controller/static_pages.go @@ -20,5 +20,296 @@ package controller //go:generate go run ./static_page_generater ../../.tmp/dist ./static_pages.go //go:generate go fmt ./static_pages.go -// This file is generated by `go generate` at Wed, 07 Aug 2019 16:36:08 CST +// This file is generated by `go generate` at Mon, 12 Aug 2019 11:04:30 CST // DO NOT EDIT! + +import "io/ioutil" +import "bytes" +import "fmt" +import "compress/gzip" +import "encoding/base64" +import "time" +import "crypto/sha256" + +// WARNING: THIS GENERATION IS FOR DEBUG / DEVELOPMENT ONLY, DO NOT +// USE IT IN PRODUCTION! + +func staticFileGen(filePath string) staticData { + content, readErr := ioutil.ReadFile(filePath) + + if readErr != nil { + panic(fmt.Sprintln("Cannot read file:", readErr)) + } + + compressed := bytes.NewBuffer(make([]byte, 0, 1024)) + + compresser, compresserBuildErr := gzip.NewWriterLevel( + compressed, gzip.BestCompression) + + if compresserBuildErr != nil { + panic(fmt.Sprintln("Cannot build data compresser:", compresserBuildErr)) + } + + contentLen := len(content) + + _, compressErr := compresser.Write(content) + + if compressErr != nil { + panic(fmt.Sprintln("Cannot write compressed data:", compressErr)) + } + + compressErr = compresser.Flush() + + if compressErr != nil { + panic(fmt.Sprintln("Cannot write compressed data:", compressErr)) + } + + content = append(content, compressed.Bytes()...) + + getHash := func(b []byte) []byte { + h := sha256.New() + h.Write(b) + + return h.Sum(nil) + } + + return staticData{ + data: content[0:contentLen], + dataHash: base64.StdEncoding.EncodeToString( + getHash(content[0:contentLen])[:8]), + compressd: content[contentLen:], + compressdHash: base64.StdEncoding.EncodeToString( + getHash(content[contentLen:])[:8]), + created: time.Now(), + } +} + +var ( + staticPages = map[string]staticData{ + "13ec0eb5bdb821ff4930237d7c9f943f.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/13ec0eb5bdb821ff4930237d7c9f943f.woff2", + ), + "13efe6cbc10b97144a28310ebdeda594.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/13efe6cbc10b97144a28310ebdeda594.woff", + ), + "1d6594826615607f6dc860bb49258acb.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/1d6594826615607f6dc860bb49258acb.woff", + ), + "313a65630d341645c13e4f2a0364381d.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/313a65630d341645c13e4f2a0364381d.woff", + ), + "35b07eb2f8711ae08d1f58c043880930.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/35b07eb2f8711ae08d1f58c043880930.woff", + ), + "4248c72df3d263be21b6d.css": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/4248c72df3d263be21b6d.css", + ), + "4248c72df3d263be21b6d.js": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/4248c72df3d263be21b6d.js", + ), + "4357beb823a5f8d65c260f045d9e019a.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/4357beb823a5f8d65c260f045d9e019a.woff2", + ), + "4fe0f73cc919ba2b7a3c36e4540d725c.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/4fe0f73cc919ba2b7a3c36e4540d725c.woff", + ), + "50d75e48e0a3ddab1dd15d6bfb9d3700.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/50d75e48e0a3ddab1dd15d6bfb9d3700.woff", + ), + "59eb3601394dd87f30f82433fb39dd94.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/59eb3601394dd87f30f82433fb39dd94.woff2", + ), + "5b4a33e176ff736a74f0ca2dd9e6b396.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/5b4a33e176ff736a74f0ca2dd9e6b396.woff2", + ), + "73f0a88bbca1bec19fb1303c689d04c6.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/73f0a88bbca1bec19fb1303c689d04c6.woff2", + ), + "83e114c316fcc3f23f524ec3e1c65984.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/83e114c316fcc3f23f524ec3e1c65984.woff", + ), + "8a96edbbcd9a6991d79371aed0b0288e.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/8a96edbbcd9a6991d79371aed0b0288e.woff", + ), + "90d1676003d9c28c04994c18bfd8b558.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/90d1676003d9c28c04994c18bfd8b558.woff2", + ), + "94008e69aaf05da75c0bbf8f8bb0db41.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/94008e69aaf05da75c0bbf8f8bb0db41.woff2", + ), + "ad538a69b0e8615ed0419c4529344ffc.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/ad538a69b0e8615ed0419c4529344ffc.woff2", + ), + "android-chrome-144x144.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-144x144.png", + ), + "android-chrome-192x192.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-192x192.png", + ), + "android-chrome-256x256.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-256x256.png", + ), + "android-chrome-36x36.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-36x36.png", + ), + "android-chrome-384x384.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-384x384.png", + ), + "android-chrome-48x48.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-48x48.png", + ), + "android-chrome-512x512.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-512x512.png", + ), + "android-chrome-72x72.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-72x72.png", + ), + "android-chrome-96x96.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/android-chrome-96x96.png", + ), + "apple-touch-icon-1024x1024.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-1024x1024.png", + ), + "apple-touch-icon-114x114.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-114x114.png", + ), + "apple-touch-icon-120x120.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-120x120.png", + ), + "apple-touch-icon-144x144.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-144x144.png", + ), + "apple-touch-icon-152x152.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-152x152.png", + ), + "apple-touch-icon-167x167.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-167x167.png", + ), + "apple-touch-icon-180x180.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-180x180.png", + ), + "apple-touch-icon-57x57.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-57x57.png", + ), + "apple-touch-icon-60x60.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-60x60.png", + ), + "apple-touch-icon-72x72.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-72x72.png", + ), + "apple-touch-icon-76x76.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-76x76.png", + ), + "apple-touch-icon-precomposed.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon-precomposed.png", + ), + "apple-touch-icon.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-icon.png", + ), + "apple-touch-startup-image-1182x2208.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-1182x2208.png", + ), + "apple-touch-startup-image-1242x2148.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-1242x2148.png", + ), + "apple-touch-startup-image-1496x2048.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-1496x2048.png", + ), + "apple-touch-startup-image-1536x2008.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-1536x2008.png", + ), + "apple-touch-startup-image-320x460.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-320x460.png", + ), + "apple-touch-startup-image-640x1096.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-640x1096.png", + ), + "apple-touch-startup-image-640x920.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-640x920.png", + ), + "apple-touch-startup-image-748x1024.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-748x1024.png", + ), + "apple-touch-startup-image-750x1294.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-750x1294.png", + ), + "apple-touch-startup-image-768x1004.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/apple-touch-startup-image-768x1004.png", + ), + "b52fac2bb93c5858f3f2675e4b52e1de.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/b52fac2bb93c5858f3f2675e4b52e1de.woff2", + ), + "browserconfig.xml": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/browserconfig.xml", + ), + "c599374e350aa7225ee3e8a114e8d8d7.svg": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/c599374e350aa7225ee3e8a114e8d8d7.svg", + ), + "c73eb1ceba3321a80a0aff13ad373cb4.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/c73eb1ceba3321a80a0aff13ad373cb4.woff", + ), + "cc2fadc3928f2f223418887111947b40.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/cc2fadc3928f2f223418887111947b40.woff", + ), + "d26871e8149b5759f814fd3c7a4f784b.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/d26871e8149b5759f814fd3c7a4f784b.woff2", + ), + "d3b47375afd904983d9be8d6e239a949.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/d3b47375afd904983d9be8d6e239a949.woff", + ), + "e8eaae902c3a4dacb9a5062667e10576.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/e8eaae902c3a4dacb9a5062667e10576.woff2", + ), + "ea4853ff509fe5f353d52586fcb94e20.svg": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/ea4853ff509fe5f353d52586fcb94e20.svg", + ), + "f5902d5ef961717ed263902fc429e6ae.woff": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/f5902d5ef961717ed263902fc429e6ae.woff", + ), + "f75569f8a5fab0893fa712d8c0d9c3fe.woff2": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/f75569f8a5fab0893fa712d8c0d9c3fe.woff2", + ), + "favicon-16x16.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/favicon-16x16.png", + ), + "favicon-32x32.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/favicon-32x32.png", + ), + "favicon.ico": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/favicon.ico", + ), + "firefox_app_128x128.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/firefox_app_128x128.png", + ), + "firefox_app_512x512.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/firefox_app_512x512.png", + ), + "firefox_app_60x60.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/firefox_app_60x60.png", + ), + "index.html": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/index.html", + ), + "manifest.json": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/manifest.json", + ), + "manifest.webapp": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/manifest.webapp", + ), + "mstile-144x144.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/mstile-144x144.png", + ), + "mstile-150x150.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/mstile-150x150.png", + ), + "mstile-310x150.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/mstile-310x150.png", + ), + "mstile-310x310.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/mstile-310x310.png", + ), + "mstile-70x70.png": staticFileGen( + "/home/rany/Development/Projects/webssh/.tmp/dist/mstile-70x70.png", + ), + } +) diff --git a/ui/socket.js b/ui/socket.js index b36b637..8823cc9 100644 --- a/ui/socket.js +++ b/ui/socket.js @@ -105,7 +105,7 @@ class Dial { enc.encode(rTime) ); - return key.slice(0, 24); + return key.slice(0, 16); } /**