diff --git a/src/components/Link.astro b/src/components/Link.astro new file mode 100644 index 0000000..72a0e0a --- /dev/null +++ b/src/components/Link.astro @@ -0,0 +1,12 @@ +--- +interface Props { + href: string; + newTab?: boolean; +} + +const { href, newTab = true } = Astro.props; +--- + + + + diff --git a/src/components/Markdown.astro b/src/components/Markdown.astro new file mode 100644 index 0000000..ef3ed1d --- /dev/null +++ b/src/components/Markdown.astro @@ -0,0 +1,12 @@ +--- +import "../../styles/asides.css"; +import "../../styles/markdown.css"; +import "../../styles/props.css"; +import "../../styles/reset.css"; +import "../../styles/shiki.css"; +import "../../styles/util.css"; +--- + +
+ +
diff --git a/src/components/MarkdownB.astro b/src/components/MarkdownB.astro new file mode 100644 index 0000000..adc46c1 --- /dev/null +++ b/src/components/MarkdownB.astro @@ -0,0 +1,11 @@ +--- +import Markdown from './Markdown.astro'; +import "../../styles/asides.css"; +import "../../styles/markdown.css"; +import "../../styles/props.css"; +import "../../styles/reset.css"; +import "../../styles/shiki.css"; +import "../../styles/util.css"; +--- + + diff --git a/src/components/Nav.astro b/src/components/Nav.astro index 60f2f14..1d7d979 100644 --- a/src/components/Nav.astro +++ b/src/components/Nav.astro @@ -5,7 +5,7 @@ interface Props { const { path } = Astro.props; -const directories = ["about", "works", "links"]; +const directories = ["skills", "projects", "blogs"]; --- diff --git a/src/components/TerminalBorder.astro b/src/components/TerminalBorder.astro index 6add2b7..bb6874c 100644 --- a/src/components/TerminalBorder.astro +++ b/src/components/TerminalBorder.astro @@ -2,35 +2,36 @@ interface Props { header: string; margin?: string; + class?: string; } -const { header, margin = "-1px" } = Astro.props; +const { header, margin = "-1px", class: htmlClass } = Astro.props; --- -
+ +
{header} - +
diff --git a/src/content/docs/docs/index.md b/src/content/aadkadocs/blogs/index.md similarity index 100% rename from src/content/docs/docs/index.md rename to src/content/aadkadocs/blogs/index.md diff --git a/src/content/docs/docs/test.md b/src/content/aadkadocs/blogs/test.md similarity index 100% rename from src/content/docs/docs/test.md rename to src/content/aadkadocs/blogs/test.md diff --git a/src/content/docs/docs/test2.md b/src/content/aadkadocs/blogs/test2.md similarity index 100% rename from src/content/docs/docs/test2.md rename to src/content/aadkadocs/blogs/test2.md diff --git a/src/content/blogs/blog-0.md b/src/content/blogs/blog-0.md new file mode 100644 index 0000000..c954f97 --- /dev/null +++ b/src/content/blogs/blog-0.md @@ -0,0 +1,39 @@ +# The search for the perfect ed25519 key pair + +Todo write intro to catch attention + +### Why care about ed25519 key pairs? + +Ed25519 is a cryptographic algorithm for generating +a pair of keys, a public one that can be shared with anyone +and a private one that is kept as a secret. + +### The ssh public key format + +If you have ever accessed a remote server it was most likely by +ssh-ing into it. +You have also most likely had to copy paste something similar to this: + +``` +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBSSj+yfJLWEb+Df4r4603TOFAUBREYS43qQB+c9i9UW +``` + +Let's break it down + +- The first part `ssh-ed25519` is the algorithm type, other common algorithms are `ssh-rsa` and `ssh-ecdsa` +- The second part is a base64-encoded binary format consiting of + - the length of the algorithm string, for ed25519 it's always 11 (4 bytes long) + - the algorithm type, for ed25519 it's always `ssh-ed25519` in binary (11 bytes long) + - the length of the key, 32 bytes for ed25519 (4 bytes long) + - the actual ed25519 key (32 bytes long) + +### Embedding a word in base64 + +Base64 is a widely used format for writing binary in a compact and human readable way, +it uses A-Z, a-z, 0-9, '/' and '+' adding up to 64 unique characters. + +It's possible to choose specific bytes in a way that when encoding it with base64 +it will form a word. + +For example, to encode "Kyren" in base64, we can use the following bytes +`00101011 00101010 01001110` or in hex `2b 2a de` diff --git a/src/content/blogs/blog-1.md b/src/content/blogs/blog-1.md index ca2e3f1..75128e5 100644 --- a/src/content/blogs/blog-1.md +++ b/src/content/blogs/blog-1.md @@ -1,3 +1,7 @@ +--- +title: The search for the perfect ed25519 key pair +template: splash +--- # My Title ## Secondary diff --git a/src/content/blogs/blog-2.md b/src/content/blogs/blog-2.md index 0296fe2..c6b02c0 100644 --- a/src/content/blogs/blog-2.md +++ b/src/content/blogs/blog-2.md @@ -1,3 +1,7 @@ +--- +title: The search for the perfect ed25519 key pair +template: splash +--- # Other blog How about code blocks diff --git a/src/content/config.ts b/src/content/config.ts index 31b7476..9d8d958 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,6 +1,5 @@ -import { defineCollection } from 'astro:content'; -import { docsSchema } from '@astrojs/starlight/schema'; +import { defineCollection } from "astro:content"; export const collections = { - docs: defineCollection({ schema: docsSchema() }), + blogs: defineCollection({}), }; diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 9c1584c..17d0a70 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -24,8 +24,18 @@ const { title } = Astro.props;