Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Merge branch 'master' of https://github.com/walafle/starbase

  • Loading branch information...
commit 877771c7aac06fc8f2ce88d5658a50fba1693405 2 parents 12fe794 + ca3c976
Sebastian Schaetz authored

Showing 2 changed files with 656 additions and 0 deletions. Show diff stats Hide diff stats

  1. +63 0 doc/overview.txt
  2. +593 0 doc/structure.svg
63 doc/overview.txt
... ... @@ -0,0 +1,63 @@
  1 +The starbase system allowes encrypted message exchange trough a server that
  2 +can not read the exchanged messages.
  3 +
  4 +* marks secondary aims, which are not ment to be implemented in the prototype,
  5 +but are thought of, to be implemented later on.
  6 +
  7 +Ones starbase home server can entierly be used as a plain data storage server,
  8 +where business logic is fetched from an indipendent source.*
  9 +
  10 +Encryption and handling of personal data is done entierly on client side.
  11 +
  12 +The first implementation should work over http.
  13 +Therefore on client side javascript is used and on the server side there is
  14 +python. (python because its for girls).
  15 +
  16 +Principle of the dead drop
  17 +A client is responsible for delivering its messages to the receivers home
  18 +server,
  19 +and the client is responsible for fetchiing received messages from the
  20 +own home server.
  21 +
  22 +partitions of a home server
  23 +The home server consists of two partitions. The first partition is the users
  24 +encrypted blob (encrypted user blob struct), and the second partition contains
  25 +for the admin readable business data and enrypted messages which are stored
  26 +for its user to be picked up.
  27 +
  28 +authorizing people to drop messages at ones home server
  29 +Friends are allowed to drop messages at ones home server. Optionally one can
  30 +allow everyone to drop messages at ones home server.
  31 +
  32 +sending a friend request
  33 +A friend request is a special message that is allowed to be dropped at the
  34 +receiptiens home server when a captcha, which is send from the receiptiens
  35 +home server, is filled out right.
  36 +
  37 +Diffie-Hellman
  38 +While sending a friend request the first part of a Diffie-Hellman-Key-Exchange
  39 +is sent. Also the auth key is send.
  40 +
  41 +Accepting a friend request
  42 +With the received auth key, one is allowed to drop a message at the requesters
  43 +home server and leave the second part of the Diffie-Hellman-Key-Exchange.
  44 +
  45 +The friendship is established. Trough the Diffie-Hellman-Key-Exchange there is
  46 +a common secret, which from now on is used to encrypt data synchronous.
  47 +
  48 +connecting to own home server
  49 +The auth key generated from ones password authorizes one to fetch and write ones blob.
  50 +
  51 + read message
  52 + When connecting to ones home server, messages in the inbox are moved to the inbox
  53 +within the encrypted_user_blob_struct.
  54 +
  55 +connecting to a foreign home server
  56 +The known access token authorizes one to drop a encrypted message at a foreign
  57 +home server.
  58 +
  59 + send message
  60 + When sending a message, it is encrypted with the shared secret of the
  61 +receiptient and stored at the receptients home server.
  62 +
  63 +
593 doc/structure.svg
... ... @@ -0,0 +1,593 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
  3 +
  4 +<svg
  5 + xmlns:dc="http://purl.org/dc/elements/1.1/"
  6 + xmlns:cc="http://creativecommons.org/ns#"
  7 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  8 + xmlns:svg="http://www.w3.org/2000/svg"
  9 + xmlns="http://www.w3.org/2000/svg"
  10 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  11 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  12 + width="1052.3622"
  13 + height="744.09448"
  14 + id="svg2"
  15 + version="1.1"
  16 + inkscape:version="0.48.0 r9654"
  17 + sodipodi:docname="structure.svg">
  18 + <defs
  19 + id="defs4" />
  20 + <sodipodi:namedview
  21 + id="base"
  22 + pagecolor="#ffffff"
  23 + bordercolor="#666666"
  24 + borderopacity="1.0"
  25 + inkscape:pageopacity="0.0"
  26 + inkscape:pageshadow="2"
  27 + inkscape:zoom="0.64521513"
  28 + inkscape:cx="526.18109"
  29 + inkscape:cy="372.04724"
  30 + inkscape:document-units="px"
  31 + inkscape:current-layer="g4535"
  32 + showgrid="false"
  33 + inkscape:window-width="1158"
  34 + inkscape:window-height="776"
  35 + inkscape:window-x="121"
  36 + inkscape:window-y="0"
  37 + inkscape:window-maximized="1"
  38 + showguides="true"
  39 + inkscape:guide-bbox="true" />
  40 + <metadata
  41 + id="metadata7">
  42 + <rdf:RDF>
  43 + <cc:Work
  44 + rdf:about="">
  45 + <dc:format>image/svg+xml</dc:format>
  46 + <dc:type
  47 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  48 + <dc:title></dc:title>
  49 + </cc:Work>
  50 + </rdf:RDF>
  51 + </metadata>
  52 + <g
  53 + inkscape:label="Layer 1"
  54 + inkscape:groupmode="layer"
  55 + id="layer1"
  56 + transform="translate(0,-308.2677)">
  57 + <g
  58 + id="g3854"
  59 + transform="matrix(0.41332996,0,0,0.41332996,809.42013,-102.37473)">
  60 + <g
  61 + transform="matrix(3.9206318,0,0,3.9206318,-737.41229,-739.6784)"
  62 + style="fill:#5599ff;stroke-width:0.61708796;stroke-miterlimit:4;stroke-dasharray:none"
  63 + id="g3830-9">
  64 + <path
  65 + style="fill:#5599ff;stroke:#000000;stroke-width:0.61708796;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
  66 + d="m 212.15625,188.09375 c -6.70984,0 -12.125,2.61777 -12.125,5.875 0,0.31024 0.0618,0.60925 0.15625,0.90625 l 0,13.21875 0,-9.96875 0,13.21875 c -0.0944,0.297 -0.15625,0.59601 -0.15625,0.90625 0,3.25723 5.41516,5.875 12.125,5.875 6.70984,0 12.09375,-2.61777 12.09375,-5.875 0,-0.31024 -0.0617,-0.60925 -0.15625,-0.90625 l 0,-13.21875 0,9.96875 0,-13.21875 c 0.0945,-0.297 0.15625,-0.59601 0.15625,-0.90625 0,-3.25723 -5.38391,-5.875 -12.09375,-5.875 z"
  67 + id="path3832-3"
  68 + inkscape:connector-curvature="0"
  69 + sodipodi:nodetypes="ssccccsssccccss" />
  70 + <rect
  71 + style="fill:#5599ff;stroke:#000000;stroke-width:0.61708796;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
  72 + id="rect3834-1"
  73 + width="24.223255"
  74 + height="11.758969"
  75 + x="200.03123"
  76 + y="188.08984"
  77 + rx="12.111628"
  78 + ry="5.8794847" />
  79 + </g>
  80 + <g
  81 + id="g3828"
  82 + transform="translate(16.679873,-1.7107562)" />
  83 + </g>
  84 + <text
  85 + xml:space="preserve"
  86 + style="font-size:11.10063267px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  87 + x="894.15552"
  88 + y="-81.002655"
  89 + id="text4335-9"
  90 + sodipodi:linespacing="125%"><tspan
  91 + sodipodi:role="line"
  92 + x="894.15552"
  93 + y="-81.002655"
  94 + style="font-size:11.10063267px"
  95 + id="tspan4444">data BLOB, </tspan><tspan
  96 + sodipodi:role="line"
  97 + x="894.15552"
  98 + y="-67.126862"
  99 + style="font-size:11.10063267px"
  100 + id="tspan4495">name TEXT</tspan></text>
  101 + <g
  102 + id="g4535"
  103 + transform="matrix(0.8859611,0,0,0.8859611,36.004284,358.74358)">
  104 + <g
  105 + id="g4113"
  106 + transform="matrix(0.68253969,0,0,0.68253969,-28.483661,-41.756797)">
  107 + <rect
  108 + rx="13.869779"
  109 + y="186.56055"
  110 + x="140.96045"
  111 + height="777.90247"
  112 + width="1456.5247"
  113 + id="rect4115"
  114 + style="fill:#87cdde;stroke:none" />
  115 + <text
  116 + sodipodi:linespacing="125%"
  117 + id="text4117"
  118 + y="250.21948"
  119 + x="168.73875"
  120 + style="font-size:36.39835739px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  121 + xml:space="preserve"><tspan
  122 + y="250.21948"
  123 + x="168.73875"
  124 + sodipodi:role="line"
  125 + id="tspan4119">user_database</tspan></text>
  126 + <rect
  127 + rx="18.75676"
  128 + transform="matrix(1.4651163,0,0,1.4651163,41.731875,61.178562)"
  129 + y="283.36884"
  130 + x="80.408051"
  131 + height="32.163219"
  132 + width="953.20087"
  133 + id="rect4529"
  134 + style="fill:#87cdde;fill-opacity:1;stroke:none" />
  135 + </g>
  136 + <g
  137 + id="g4292"
  138 + transform="matrix(1.3273115,0,0,1.3273115,-158.71042,-143.4482)">
  139 + <g
  140 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)"
  141 + id="g4294">
  142 + <rect
  143 + style="fill:#d7e3f4;stroke:none"
  144 + id="rect4296"
  145 + width="626.05933"
  146 + height="487.24997"
  147 + x="143.1024"
  148 + y="233.6834"
  149 + rx="13.869779" />
  150 + <text
  151 + xml:space="preserve"
  152 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  153 + x="158.41103"
  154 + y="257.64471"
  155 + id="text4298"
  156 + sodipodi:linespacing="125%"><tspan
  157 + sodipodi:role="line"
  158 + id="tspan4300"
  159 + x="158.41103"
  160 + y="257.64471">blobs</tspan></text>
  161 + </g>
  162 + <text
  163 + xml:space="preserve"
  164 + style="font-size:8.36324596px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  165 + x="207.96796"
  166 + y="284.09494"
  167 + id="text4497"
  168 + sodipodi:linespacing="125%"><tspan
  169 + sodipodi:role="line"
  170 + x="207.96796"
  171 + y="284.09494"
  172 + style="font-size:8.36324596px"
  173 + id="tspan4499">data BLOB, </tspan><tspan
  174 + sodipodi:role="line"
  175 + x="207.96796"
  176 + y="294.54901"
  177 + style="font-size:8.36324596px"
  178 + id="tspan4501">name TEXT</tspan></text>
  179 + </g>
  180 + <g
  181 + transform="matrix(0.68253969,0,0,0.68253969,9.516339,230.2432)"
  182 + id="g4012">
  183 + <rect
  184 + style="fill:#afe9af;stroke:none"
  185 + id="rect4014"
  186 + width="501.24847"
  187 + height="261.39709"
  188 + x="143.1024"
  189 + y="233.6834"
  190 + rx="13.869779" />
  191 + <text
  192 + xml:space="preserve"
  193 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  194 + x="158.41103"
  195 + y="257.64471"
  196 + id="text4016"
  197 + sodipodi:linespacing="125%"><tspan
  198 + id="tspan4226"
  199 + sodipodi:role="line"
  200 + x="158.41103"
  201 + y="257.64471">encrypted_user_blob_struct</tspan></text>
  202 + </g>
  203 + <g
  204 + id="g4004"
  205 + transform="matrix(0.58220028,0,0,0.58220028,31.852592,279.55551)">
  206 + <rect
  207 + rx="13.869779"
  208 + y="233.6834"
  209 + x="143.1024"
  210 + height="247.69328"
  211 + width="125.79698"
  212 + id="rect4006"
  213 + style="fill:#d7f4d7;fill-opacity:1;stroke:none" />
  214 + <text
  215 + sodipodi:linespacing="125%"
  216 + id="text4008"
  217 + y="257.64471"
  218 + x="158.41103"
  219 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  220 + xml:space="preserve"><tspan
  221 + y="257.64471"
  222 + x="158.41103"
  223 + id="tspan4010"
  224 + sodipodi:role="line">inbox</tspan></text>
  225 + </g>
  226 + <g
  227 + id="g4032"
  228 + transform="matrix(0.58220028,0,0,0.58220028,112.03375,279.55551)">
  229 + <rect
  230 + rx="13.869779"
  231 + y="233.6834"
  232 + x="143.1024"
  233 + height="247.69328"
  234 + width="125.79698"
  235 + id="rect4034"
  236 + style="fill:#d7f4d7;stroke:none" />
  237 + <text
  238 + sodipodi:linespacing="125%"
  239 + id="text4036"
  240 + y="257.64471"
  241 + x="158.41103"
  242 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  243 + xml:space="preserve"><tspan
  244 + y="257.64471"
  245 + x="158.41103"
  246 + id="tspan4038"
  247 + sodipodi:role="line">friends</tspan></text>
  248 + </g>
  249 + <g
  250 + transform="matrix(0.58220028,0,0,0.58220028,190.50894,279.55551)"
  251 + id="g4040">
  252 + <rect
  253 + style="fill:#d7f4d7;stroke:none"
  254 + id="rect4042"
  255 + width="125.79698"
  256 + height="247.69328"
  257 + x="143.1024"
  258 + y="233.6834"
  259 + rx="13.869779" />
  260 + <text
  261 + xml:space="preserve"
  262 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  263 + x="158.41103"
  264 + y="257.64471"
  265 + id="text4044"
  266 + sodipodi:linespacing="125%"><tspan
  267 + sodipodi:role="line"
  268 + id="tspan4046"
  269 + x="158.41103"
  270 + y="257.64471">admin</tspan></text>
  271 + </g>
  272 + <g
  273 + transform="translate(0,200)"
  274 + id="g4070">
  275 + <rect
  276 + style="fill:#ffd5e5;fill-opacity:1;stroke:none"
  277 + id="rect4064"
  278 + width="25.414829"
  279 + height="25.414829"
  280 + x="165.66704"
  281 + y="435.11853"
  282 + rx="6.1220698"
  283 + ry="6.1220698" />
  284 + <text
  285 + xml:space="preserve"
  286 + style="font-size:12.63510323px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  287 + x="205.13455"
  288 + y="451.31171"
  289 + id="text4066"
  290 + sodipodi:linespacing="125%"><tspan
  291 + sodipodi:role="line"
  292 + id="tspan4068"
  293 + x="205.13455"
  294 + y="451.31171">shared key A encrypted</tspan></text>
  295 + </g>
  296 + <g
  297 + transform="translate(0,240)"
  298 + id="g4075">
  299 + <rect
  300 + ry="6.1220698"
  301 + rx="6.1220698"
  302 + y="435.11853"
  303 + x="165.66704"
  304 + height="25.414829"
  305 + width="25.414829"
  306 + id="rect4077"
  307 + style="fill:#e5ff80;fill-opacity:1;stroke:none" />
  308 + <text
  309 + sodipodi:linespacing="125%"
  310 + id="text4079"
  311 + y="451.31171"
  312 + x="205.13455"
  313 + style="font-size:12.63510323px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  314 + xml:space="preserve"><tspan
  315 + y="451.31171"
  316 + x="205.13455"
  317 + id="tspan4081"
  318 + sodipodi:role="line">shared key B encrypted</tspan></text>
  319 + </g>
  320 + <g
  321 + id="g4083"
  322 + transform="translate(0,280)">
  323 + <rect
  324 + style="fill:#afe9af;fill-opacity:1;stroke:none"
  325 + id="rect4085"
  326 + width="25.414829"
  327 + height="25.414829"
  328 + x="165.66704"
  329 + y="435.11853"
  330 + rx="6.1220698"
  331 + ry="6.1220698" />
  332 + <text
  333 + xml:space="preserve"
  334 + style="font-size:12.63510323px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  335 + x="205.13455"
  336 + y="451.31171"
  337 + id="text4087"
  338 + sodipodi:linespacing="125%"><tspan
  339 + sodipodi:role="line"
  340 + id="tspan4089"
  341 + x="205.13455"
  342 + y="451.31171">private key encrypted</tspan></text>
  343 + </g>
  344 + <g
  345 + transform="matrix(1.3273115,0,0,1.3273115,420.51779,-140.52427)"
  346 + id="g4099">
  347 + <g
  348 + id="g4024"
  349 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)">
  350 + <rect
  351 + rx="13.869779"
  352 + y="233.6834"
  353 + x="143.1024"
  354 + height="484.02249"
  355 + width="125.79698"
  356 + id="rect4026"
  357 + style="fill:#d7e3f4;stroke:none" />
  358 + <text
  359 + sodipodi:linespacing="125%"
  360 + id="text4028"
  361 + y="257.64471"
  362 + x="158.41103"
  363 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  364 + xml:space="preserve"><tspan
  365 + y="257.64471"
  366 + x="158.41103"
  367 + id="tspan4030"
  368 + sodipodi:role="line">admin</tspan></text>
  369 + </g>
  370 + <text
  371 + xml:space="preserve"
  372 + style="font-size:8.36324596px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  373 + x="199.31602"
  374 + y="280.02032"
  375 + id="text4446"
  376 + sodipodi:linespacing="125%"><tspan
  377 + sodipodi:role="line"
  378 + x="199.31602"
  379 + y="280.02032"
  380 + style="font-size:8.36324596px"
  381 + id="tspan4448">lastaccess TEXT, </tspan><tspan
  382 + sodipodi:role="line"
  383 + x="199.31602"
  384 + y="290.4744"
  385 + style="font-size:8.36324596px"
  386 + id="tspan4450">authkey TEXT, </tspan><tspan
  387 + sodipodi:role="line"
  388 + x="199.31602"
  389 + y="300.92844"
  390 + style="font-size:8.36324596px"
  391 + id="tspan4452">name TEXT, </tspan><tspan
  392 + sodipodi:role="line"
  393 + x="199.31602"
  394 + y="311.38251"
  395 + style="font-size:8.36324596px"
  396 + id="tspan4454">url TEXT</tspan></text>
  397 + </g>
  398 + <g
  399 + id="g4230"
  400 + transform="matrix(1.3273115,0,0,1.3273115,553.24894,-140.52427)">
  401 + <g
  402 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)"
  403 + id="g4232">
  404 + <rect
  405 + style="fill:#d7e3f4;stroke:none"
  406 + id="rect4234"
  407 + width="125.79698"
  408 + height="484.02249"
  409 + x="143.1024"
  410 + y="233.6834"
  411 + rx="13.869779" />
  412 + <text
  413 + xml:space="preserve"
  414 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  415 + x="158.41103"
  416 + y="257.64471"
  417 + id="text4236"
  418 + sodipodi:linespacing="125%"><tspan
  419 + id="tspan4278"
  420 + sodipodi:role="line"
  421 + x="158.41103"
  422 + y="257.64471">friends</tspan></text>
  423 + </g>
  424 + <text
  425 + xml:space="preserve"
  426 + style="font-size:8.36324596px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  427 + x="186.14075"
  428 + y="278.78104"
  429 + id="text4415"
  430 + sodipodi:linespacing="125%"><tspan
  431 + sodipodi:role="line"
  432 + x="186.14075"
  433 + y="278.78104"
  434 + style="font-size:8.36324596px"
  435 + id="tspan4417">local_access_key TEXT</tspan></text>
  436 + </g>
  437 + <g
  438 + transform="matrix(0.58220028,0,0,0.58220028,270.6901,279.55551)"
  439 + id="g4256">
  440 + <rect
  441 + style="fill:#d7f4d7;fill-opacity:1;stroke:none"
  442 + id="rect4258"
  443 + width="125.79698"
  444 + height="247.69328"
  445 + x="143.1024"
  446 + y="233.6834"
  447 + rx="13.869779" />
  448 + <text
  449 + xml:space="preserve"
  450 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  451 + x="158.41103"
  452 + y="257.64471"
  453 + id="text4260"
  454 + sodipodi:linespacing="125%"><tspan
  455 + id="tspan4264"
  456 + sodipodi:role="line"
  457 + x="158.41103"
  458 + y="257.64471">outbox</tspan></text>
  459 + </g>
  460 + <g
  461 + transform="matrix(1.3273115,0,0,1.3273115,685.98008,-140.52427)"
  462 + id="g4268">
  463 + <g
  464 + id="g4270"
  465 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)">
  466 + <rect
  467 + rx="13.869779"
  468 + y="233.6834"
  469 + x="143.1024"
  470 + height="484.02249"
  471 + width="125.79698"
  472 + id="rect4272"
  473 + style="fill:#d7e3f4;stroke:none" />
  474 + <text
  475 + sodipodi:linespacing="125%"
  476 + id="text4274"
  477 + y="257.64471"
  478 + x="158.41103"
  479 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  480 + xml:space="preserve"><tspan
  481 + y="257.64471"
  482 + x="158.41103"
  483 + id="tspan4276"
  484 + sodipodi:role="line">inbox</tspan></text>
  485 + </g>
  486 + <text
  487 + sodipodi:linespacing="125%"
  488 + id="text4335"
  489 + y="275.84042"
  490 + x="200.89784"
  491 + style="font-size:8.36324596px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  492 + xml:space="preserve"><tspan
  493 + style="font-size:8.36324596px"
  494 + y="275.84042"
  495 + x="200.89784"
  496 + id="tspan4337"
  497 + sodipodi:role="line">message TEXT, </tspan><tspan
  498 + id="tspan4339"
  499 + style="font-size:8.36324596px"
  500 + y="286.29449"
  501 + x="200.89784"
  502 + sodipodi:role="line">sender TEXT, </tspan><tspan
  503 + id="tspan4341"
  504 + style="font-size:8.36324596px"
  505 + y="296.74854"
  506 + x="200.89784"
  507 + sodipodi:role="line">timestamp TEXT</tspan></text>
  508 + </g>
  509 + <g
  510 + id="g4305"
  511 + transform="matrix(1.3273115,0,0,1.3273115,685.98008,-140.52427)">
  512 + <g
  513 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)"
  514 + id="g4307">
  515 + <text
  516 + xml:space="preserve"
  517 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  518 + x="158.41103"
  519 + y="257.64471"
  520 + id="text4311"
  521 + sodipodi:linespacing="125%"><tspan
  522 + sodipodi:role="line"
  523 + id="tspan4313"
  524 + x="158.41103"
  525 + y="257.64471">inbox</tspan></text>
  526 + </g>
  527 + </g>
  528 + <g
  529 + id="g4315"
  530 + transform="matrix(1.0889332,0,0,1.0889332,740.23104,148.40651)">
  531 + <g
  532 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)"
  533 + id="g4317">
  534 + <rect
  535 + style="fill:#ffd5e5;fill-opacity:1;stroke:none"
  536 + id="rect4319"
  537 + width="125.79698"
  538 + height="104.0696"
  539 + x="143.1024"
  540 + y="233.6834"
  541 + rx="13.869779" />
  542 + <text
  543 + xml:space="preserve"
  544 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  545 + x="158.41103"
  546 + y="257.64471"
  547 + id="text4321"
  548 + sodipodi:linespacing="125%"><tspan
  549 + sodipodi:role="line"
  550 + id="tspan4323"
  551 + x="158.41103"
  552 + y="257.64471">message</tspan></text>
  553 + </g>
  554 + </g>
  555 + <g
  556 + transform="matrix(1.0889332,0,0,1.0889332,740.23104,246.83671)"
  557 + id="g4325">
  558 + <g
  559 + id="g4327"
  560 + transform="matrix(0.68253969,0,0,0.68253969,91.493782,64.10786)">
  561 + <rect
  562 + rx="13.869779"
  563 + y="233.6834"
  564 + x="143.1024"
  565 + height="104.0696"
  566 + width="125.79698"
  567 + id="rect4329"
  568 + style="fill:#e5ff80;fill-opacity:1;stroke:none" />
  569 + <text
  570 + sodipodi:linespacing="125%"
  571 + id="text4331"
  572 + y="257.64471"
  573 + x="158.41103"
  574 + style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
  575 + xml:space="preserve"><tspan
  576 + y="257.64471"
  577 + x="158.41103"
  578 + id="tspan4333"
  579 + sodipodi:role="line">message</tspan></text>
  580 + </g>
  581 + </g>
  582 + <rect
  583 + ry="0"
  584 + rx="0"
  585 + y="309.15729"
  586 + x="80.408043"
  587 + height="7.3098307"
  588 + width="975.13031"
  589 + id="rect4531"
  590 + style="fill:#87cdde;fill-opacity:1;stroke:none" />
  591 + </g>
  592 + </g>
  593 +</svg>

0 comments on commit 877771c

Please sign in to comment.
Something went wrong with that request. Please try again.