Skip to content

[aadwarf64] Add a character to the augmentation string for RA signing method - #430

Merged
kmclaughlin-arm merged 3 commits into
ARM-software:mainfrom
kmclaughlin-arm:hint-space-auth
Oct 8, 2026
Merged

kmclaughlin-arm merged 3 commits into
ARM-software:mainfrom
kmclaughlin-arm:hint-space-auth

Conversation

@kmclaughlin-arm

Copy link
Copy Markdown
Contributor

FEAT_PAuth_LR adds non hint-space instructions for signing and
authenticating return addresses using PC as an additional diversifier,
along with the hint-space PACM instruction.

The return address state records whether the value of PC has been
used, however this is not sufficient to distinguish whether hint-space
instructions were used, e.g. PACM; PACIASP or PACIASPPC. If PACM has
a trivial implementation, these sequences may have different results.

Adding the N character to the augmentation string indicates that the
non hint-space instruction form was used when the signing state includes
the PC value as a diversifier. If the mark is absent but PC was used,
then the hint-space instruction sequence must be used for authentication.

Fixes: #396

… method

FEAT_PAuth_LR adds non hint-space instructions for signing and
authenticating return addresses using PC as an additional diversifier,
along with the hint-space PACM instruction.

The return address state records whether the value of PC has been
used, however this is not sufficient to distinguish whether hint-space
instructions were used, e.g. "PACM; PACIASP" or "PACIASPPC". If PACM has
a trivial implementation, these sequences may have different results.

Adding the 'N' character to the augmentation string indicates that the
non hint-space instruction form was used when the signing state includes
the PC value as a diversifier. If the mark is absent but PC was used,
then the hint-space instruction sequence must be used for authentication.

ARM-software#396

@smithp35 smithp35 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the patch. I've got one small suggestion to move a sentence, although that's subjective so feel free to keep the original if you prefer.

Otherwise changes look good to me. I'll defer to @walkerkd to approve.

Comment thread aadwarf64/aadwarf64.rst Outdated
the stack space they use.

3. The character 'N' indicates that associated frames are using non hint-space
FEAT_PAuth_LR instructions for return address signing. It is required that a

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the "It is required that a single method is used to sign and authenticate a pointer." May be better off with the note. At this stage of the text there isn't enough context to know what the two methods are, and it is the unwinder that needs to use the matching method.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have moved this part to the note below where there is more context.

Comment thread aadwarf64/aadwarf64.rst Outdated
2. The mark on a frame recording that it uses non hint-space instructions
for return address signing is information which can be used when unwinding.
If the mark is absent and the PC value was used as a diversifier for
signing, this indicates that the hint-space PACM instruction was used.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the "It is required that a single method is used to sign and authenticate a pointer." Could be added at the end of the note.

Comment thread aadwarf64/aadwarf64.rst
@walkerkd

walkerkd commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

LGTM

@smithp35

smithp35 commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Let me know if you don't have permissions to merge, I can do that for you if needed.

@kmclaughlin-arm
kmclaughlin-arm merged commit bd017ee into ARM-software:main Oct 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unwind information for FEAT_PAuth_LR needs to track whether hint-space instructions were used.

4 participants