Posts
3460
Following
207
Followers
342
Linux kernel maintainer. Compilers and virtualization at Parity Technologies.

Jarkko Sakkinen

Would make porting all sorts of old protocol stacks to #Rust so much easier if the enum fields could have aliased names. #rustlang
2
1
2

Jarkko Sakkinen

I'm looking into repealing and replacing the error type with this with the error type from my lab project: https://github.com/tpm-rs/tpm-rs/issues/71

#tpm #tpmrs #rust #rustlang
0
1
0

Jarkko Sakkinen

Language Server Protocol really would need a competitor with a #plugin based architecture.

Then editor and analyzer could have:

1. A better memory and caching strategy.
2. Both faster performance and lower operation latency.

#LSP is IMHO is exactly like the worst ideas of lrzsz modified to work as a language analyzer.
0
0
0

Jarkko Sakkinen

#telescope is awesome with the #kernel tree #neovim
0
0
2

Fabio Alessandro "Fale" Locati

The work on #bootc Is coming along very nice! This morning keynote by @cgwalters, Dan Walsh, and Stef Walter was very nice to see the current state of it in #Fedora and CentOS Stream. #devconf_cz

1
5
1

Jarkko Sakkinen

#neovim in #fedora 40 does this when opening a #lua file:

Error detected while processing BufReadPost Autocommands for "*":
Error executing lua callback: /usr/share/nvim/runtime/filetype.lua:35: Error executing lua: /usr/share/nvim/runtime/filetype.lua:36:
 BufReadPost Autocommands for "*"..FileType Autocommands for "*"..function <SNR>1_LoadFTPlugin[20]..script /usr/share/nvim/runtime/f
tplugin/lua.lua: Vim(runtime):E5113: Error while calling lua chunk: /usr/share/nvim/runtime/lua/vim/treesitter/language.lua:107: no
parser for 'lua' language, see :help treesitter-parsers
stack traceback:
        [C]: in function 'error'
        /usr/share/nvim/runtime/lua/vim/treesitter/language.lua:107: in function 'add'
        /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:111: in function 'new'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:41: in function '_create_parser'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:108: in function 'get_parser'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:416: in function 'start'
        /usr/share/nvim/runtime/ftplugin/lua.lua:2: in main chunk
        [C]: in function 'nvim_cmd'
        /usr/share/nvim/runtime/filetype.lua:36: in function </usr/share/nvim/runtime/filetype.lua:35>
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>
stack traceback:
        [C]: in function 'nvim_cmd'
        /usr/share/nvim/runtime/filetype.lua:36: in function </usr/share/nvim/runtime/filetype.lua:35>
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>
stack traceback:
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>
Press ENTER or type command to continue
1
0
0

Jarkko Sakkinen

When cargo publish -p tpm2_cli , I need to

tpm2_call = "0.1.1"

… while building locally:

tpm2_call = { path = "../tpm2_call" }

How to sort this out in “idiomatic manner”?

#rust #rustlang

5
1
0

Jarkko Sakkinen

Edited 5 months ago

A crate for #TPM 2.0 library protocol, or beginnings of it: https://gitlab.com/jarkkojs/tpm2_library/

Sub-crates:

  1. tpm2_call for TPM 2.0 library protocol shenanigans.
  2. tpm2_cli for a command-line interfaces.

Development process:

I aim to do cli first as Linux tied but it could also have e.g. Windows backend. tpm2_call will be portable between operating systems.

#TPM2 #Rust #rustlang

1
1
0

Jarkko Sakkinen

Not really a real project. I've been ad-hoc scripting with #python since 2005, and wanted to learn how to "devops" a properly pipeline at #gitlab, with a release ending to the #pypi: https://pypi.org/project/eth0/

PS. I deleted 0.1.0 tag and release from pypi, because the tag was not signed ;-) you could never trust it...
0
1
0

Jarkko Sakkinen

Edited 5 months ago

So for my TPM2 crate I was thinking to rename the project Git as tpm2_library and have sub-crates tpm2_call for protoco and tpm2_cli with a sub-command tpm2cli rc.

Is it acceptable to name for consistency sake the sub-crate directory as tpm2_cli but generate an executable as tpm2cli?

Root project’s name inherits from https://trustedcomputinggroup.org/resource/tpm-library-specification/

#Rust #rustlang #TPM2

0
1
0

Jarkko Sakkinen

Edited 5 months ago

I initiated my own #TPM2 #Rust crate partly because the output given by tpm2_rc_decode does not give back the mnemonic of a return code.

Here’s the example from its man page:

tpm2_rc_decode 0x1d5
tpm:parameter(1):structure is the wrong size

So I wrote my return code decoder, and here’s how it works with the previous example:

target/debug/examples/tpm2rc 0x1d5
TPM_RC_SIZE

The Git-repository is available here: https://gitlab.com/jarkkojs/tpm2_call

I’m not going to add any code this crate dealing with /dev/tpm0. Instead the plan is to implement command buffer builder and parser with similar high-level ideas as I’ve done in the #Linux #kernel.

#rustlang

0
2
0
Edited 5 months ago

📣 Only 2 days (today and tomorrow) left to get your talk proposals in for the All Systems Go! 2024 CFP.
The clock ⏲️ is ticking!
🏃‍♂️ Hurry over to get yours in: https://cfp.all-systems-go.io/all-systems-go-2024/cfp

0
3
0

Jarkko Sakkinen

Still cannot believe this: I could reserve account name "jarkko" from #pypi, and it is the year 2024. #python #python3
1
2
0

Jarkko Sakkinen

Edited 5 months ago
I think #Zola is my favorite tools so far that spans from the #Rust ecosystem: a single binary static web generator.

For a non-web person like me it is easy to grasp. I got a page quickly created that I can send to the employers in the early Fall.

Another earlier mentioned tool, which has someone real innovation embedded is of course #Typst :-)

Making forks of old craft is mostly counter-productive and causes unnecessary drift and divergence, so I oppose all the Rust fork garbage.

It is morally legit to be in opposition against software that is developed from toxic standing point, considering open source community overall. Being toxic against toxic is not toxic.

#rustlang
1
3
6

(_Rum-tum-tiddle-um-tum._)

0
2
0

Jarkko Sakkinen

Someone complained that my home page, which should provide more information regarding recruitment leads to void so I put together this :-) I think it is good enough.

https://jarkkojs.gitlab.io/
0
0
0

Jarkko Sakkinen

Edited 5 months ago
After I have finished with #TPM2 signing keys, I'll create a branch called p256k1 to my linux-tpmdd tree, and start doing a PoC of that #ECC curve...

I'll start with #ECDSA signature verification because that is secure without specialized hardware, and as of today #TCG is yet to support P256K1 in its #algorithm #registry.

Also this requires to implement the early version of Keccack-256 #hash algorithm because there are AFAIK padding differences with SHA-3.

#linux #kernel #keys #blockchain
0
1
0

Jarkko Sakkinen

Edited 5 months ago

I wonder why vfat in kconfig does not select these options:

  • CONFIG_NLS_CODEPAGE_437
  • CONFIG_NLS_ISO8859_1

Noticed this while putting together #systemd image. You really cannot use FAT meaningfully without 437, so there should be IMHO either depends or select relation between these and FAT kconfig options.

In my opinion selecting VFAT in 2024 from kconfig should lead to selecting all the options that are required for filenames at minimum because it has exactly two use cases:

  1. USB sticks
  2. ESP

In both cases proper interpretation of filenames is required.

PS. I also wonder why systemd does not list them as its required CONFIG_*. They are not obvious kconfig options in the context of kernel QA ;-) I always begin with tinyconfig and add up from there when doing this. Using ESP is required by practical means with systemd-boot so all three options should exist in this file: https://github.com/systemd/systemd/blob/main/README. I used it as a reference and failed.

#linux #kernel #vfat #codepage #437

0
1
0

Jarkko Sakkinen

Ramping up #systemd #kernel #QA: DONE!

URL: https://gitlab.com/jarkkojs/linux-tpmdd-test

Contents:

CMakeLists.txt
Config.in
LICENSE
README.md
board/x86_64/buildroot.conf
board/x86_64/genimage.cfg
board/x86_64/kselftest-tpm2.exp.in
board/x86_64/linux.config
board/x86_64/post-build.sh
board/x86_64/post-image.sh
board/x86_64/run-qemu.sh.in
board/x86_64/run-tests.sh.in
board/x86_64/ssh_config.in
buildroot-2024.02.3.patch
configs/x86_64_defconfig
external.desc
external.mk

I’ve been editing the history while ramping up this starting point but I will stop this chaotic workflow now and commit to this baseline :-) So no worries if sending pull requests…

This is also CI capable environment assuming that runner has:

  • QEMU
  • swtpm

The GIF-animation shows the proof that it actually also works.

0
0
0

Jarkko Sakkinen

Yup, I think it is most sensible to make asymmetric TPM2 key signer only, and import public key to software asymmetric key.

It's not purely just doing TPM2_Sign but also per signature type (RSAPSS, ECDSA etc.) it needs signature specific encoder to ASN.1 format.

Still sufficient to have only a single tpm2_signing_key type of module.
0
0
0
Show older